ios口音字母显得很奇怪

时间:2013-12-27 16:57:06

标签: ios objective-c

我正在iOS应用中解析一些JSON并使用文本设置一些标签。一些标签应如下所示:

Beyoncé

但是,当标签显示时,它们显示为:

Beyoncé

字体即时通讯使用支持重音但我似乎无法弄清楚如何正确显示它,即使使用NSUTF8StringEncoding

有什么想法吗?

2 个答案:

答案 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

SBJSON:https://github.com/stig/json-framework