[Issue #565] Checking for kCFStringEncodingInvalidId from CFStringConvertIANACharSetNameToEncoding() before getting NSStringEncoding with CFStringConvertEncodingToNSStringEncoding, which may otherwise lead to unexpected behavior
This commit is contained in:
parent
d31e23af29
commit
175c3fa451
1 changed files with 6 additions and 3 deletions
|
|
@ -325,12 +325,15 @@ static inline BOOL AFStateTransitionIsValid(AFOperationState fromState, AFOperat
|
|||
- (NSString *)responseString {
|
||||
[self.lock lock];
|
||||
if (!_responseString && self.response && self.responseData) {
|
||||
NSStringEncoding textEncoding = NSUTF8StringEncoding;
|
||||
NSStringEncoding stringEncoding = NSUTF8StringEncoding;
|
||||
if (self.response.textEncodingName) {
|
||||
textEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((__bridge CFStringRef)self.response.textEncodingName));
|
||||
CFStringEncoding IANAEncoding = CFStringConvertIANACharSetNameToEncoding((__bridge CFStringRef)self.response.textEncodingName);
|
||||
if (IANAEncoding != kCFStringEncodingInvalidId) {
|
||||
stringEncoding = CFStringConvertEncodingToNSStringEncoding(IANAEncoding);
|
||||
}
|
||||
}
|
||||
|
||||
self.responseString = [[NSString alloc] initWithData:self.responseData encoding:textEncoding];
|
||||
self.responseString = [[NSString alloc] initWithData:self.responseData encoding:stringEncoding];
|
||||
}
|
||||
[self.lock unlock];
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue