NSData* urldate = [request responseData];
//从 GBK 转到 UTF-8
NSMutableString *newXML=[[NSMutableString alloc]initWithData:urldate encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)];
//字串 "gb2312" 替换成 "utf-8"
[newXML replaceCharactersInRange:[newXML rangeOfString:@"gb2312"]withString:@"utf-8"];
//NSString 转换成 NSData
[newXML dataUsingEncoding:NSUTF8StringEncoding];
从 GBK 转到 UTF-8
用 NSStringEncoding enc =CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000) ,
然后就可以用initWithData:encoding来实现。
从 UTF-8 转到 GBK
CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000),
得到的enc却是kCFStringEncodingInvalidId。
没关系,试试 NSData *data=[nsstring dataUsingEncoding:-2147482063];
转换字符编码主要用到CFStringConvertEncodingToNSStringEncoding函数,具体的大家可以看看这个函数的用法
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding (kCFStringEncodingGB_18030_2000);