我正在iOS应用中解析一些JSON并使用文本设置一些标签。一些标签应如下所示:
Beyoncé
但是,当标签显示时,它们显示为:
Beyoncé
字体即时通讯使用支持重音但我似乎无法弄清楚如何正确显示它,即使使用NSUTF8StringEncoding
。
有什么想法吗?
答案 0 :(得分:0)
您的JSON是否有编码参数,或者您是否可以从响应标头中获取它?我这样做是使用NSHTTPURLResponse
:
- (NSString *)decodedStringWithResponse:(NSHTTPURLResponse *)response data:(NSData *)data {
NSStringEncoding encoding = NSUTF8StringEncoding;
if (response.textEncodingName) {
CFStringEncoding IANAEncoding = CFStringConvertIANACharSetNameToEncoding((__bridge CFStringRef)response.textEncodingName);
if (IANAEncoding != kCFStringEncodingInvalidId) {
encoding = CFStringConvertEncodingToNSStringEncoding(IANAEncoding);
}
}
NSString *decodedString = [[NSString alloc] initWithData:data encoding:encoding];
if (!decodedString)
decodedString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if (!decodedString)
decodedString = [[NSString alloc] initWithData:data encoding:NSISOLatin1StringEncoding];
if (!decodedString)
decodedString = [[NSString alloc] initWithData:data encoding:NSISOLatin2StringEncoding];
return decodedString;
}
答案 1 :(得分:0)
不确定你目前使用什么解析这个,但是你应该给SBJSON一个机会。它非常易于使用,这里的教程可能会为您节省很多麻烦:
http://blog.zachwaugh.com/post/309924609/how-to-use-json-in-cocoaobjective-c