Showing
1 changed file
with
11 additions
and
2 deletions
@@ -769,8 +769,17 @@ static NSError *ASIUnableToCreateRequestError; | @@ -769,8 +769,17 @@ static NSError *ASIUnableToCreateRequestError; | ||
769 | NSString *contentType = [[self responseHeaders] objectForKey:@"Content-Type"]; | 769 | NSString *contentType = [[self responseHeaders] objectForKey:@"Content-Type"]; |
770 | NSStringEncoding encoding = [self defaultResponseEncoding]; | 770 | NSStringEncoding encoding = [self defaultResponseEncoding]; |
771 | if (contentType) { | 771 | if (contentType) { |
772 | - NSArray *parts = [contentType componentsSeparatedByString:@"="]; | 772 | + |
773 | - NSString *IANAEncoding = [parts objectAtIndex:[parts count]-1]; | 773 | + NSString *charsetSeparator = @"charset="; |
774 | + NSScanner *charsetScanner = [NSScanner scannerWithString: contentType]; | ||
775 | + NSString *IANAEncoding = nil; | ||
776 | + | ||
777 | + if ([charsetScanner scanUpToString: charsetSeparator intoString: NULL]) | ||
778 | + { | ||
779 | + [charsetScanner setScanLocation: [charsetScanner scanLocation] + [charsetSeparator length]]; | ||
780 | + [charsetScanner scanUpToString: @";" intoString: &IANAEncoding]; | ||
781 | + } | ||
782 | + | ||
774 | if (IANAEncoding) { | 783 | if (IANAEncoding) { |
775 | CFStringEncoding cfEncoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef)IANAEncoding); | 784 | CFStringEncoding cfEncoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef)IANAEncoding); |
776 | if (cfEncoding != kCFStringEncodingInvalidId) { | 785 | if (cfEncoding != kCFStringEncodingInvalidId) { |
-
Please register or login to post a comment