diff --git a/AFNetworking/AFURLConnectionOperation.m b/AFNetworking/AFURLConnectionOperation.m index 339f145..74d0c0b 100644 --- a/AFNetworking/AFURLConnectionOperation.m +++ b/AFNetworking/AFURLConnectionOperation.m @@ -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];