我正在编写一个支持英语和法语的应用程序。应用程序从服务器请求信息,服务器响应使用JSON。我正在使用JSONKit库来解析响应,但是从法语响应中解析的字符串如下所示:
Membres –Économisez 5% sur les services et jusqu’à 15% sur d’autres produits
如何解码特殊字符?所以我明白了:
Membres-Économisez5%sur les servicesetjusqu'à15%sur d'autres produits
我查看了NSString的API并尝试了一些实例方法,但我对字符编码知之甚少,最后得到了一些奇怪的结果。因此,如果您还可以提供有关字符编码的简要说明,我真的很感激。
提前致谢
答案 0 :(得分:4)
答案 1 :(得分:3)
使用正确的字符串编码的NSString stringByReplacingPercentEscapesUsingEncoding应该可以做到这一点。
[yourString stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
可能是一个很好的候选人。
答案 2 :(得分:2)
如果你仍在使用Objective C代码,这个解决方案对我来说效果很好。
- (NSString *)decodeHtmlStringValue
{
NSData *encodedString = [self dataUsingEncoding:NSUTF8StringEncoding];
NSAttributedString *htmlString = [[NSAttributedString alloc] initWithData:encodedString
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: [NSNumber numberWithInt:NSUTF8StringEncoding]} documentAttributes:nil error:nil];
return [htmlString string];
}
如果你使用swift
https://stackoverflow.com/questions/25607247/how-do-i-decode-html-entities-in-swift