最近在项目的版本迭代中突然发现界面上有一段乱码:
立马去查看返回数据:
返回的数据类型并无问题,但是赋值后po下就有问题了:
两种取值方式都是同样的结果,基本确定是编码的问题了,那就转UTF8呗:
方式一:
NSString *str = [personInfoM.country stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
方式二:
NSString *str = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)personInfoM.country, nil, nil, kCFStringEncodingUTF8));
然而试了两种转换编码方法都没有什么卵用
找了半天还是这个管用:
const char *c = [string cStringUsingEncoding:NSISOLatin1StringEncoding];
NSString *str = [[NSString alloc] initWithCString:c encoding:NSUTF8StringEncoding];