现在的位置: 首页 > 综合 > 正文

将gb2312转化成utf-8重新解析

2018年01月08日 ⁄ 综合 ⁄ 共 858字 ⁄ 字号 评论关闭

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);

抱歉!评论已关闭.