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