如何解码 NSString 中的 html 编码字符?

lui*_*ssa 4 iphone character-encoding nsstring ios

我正在编写一个支持英语和法语的应用程序。应用程序从服务器请求信息,服务器响应使用 JSON。我正在使用 JSONKit 库来解析响应,但从法语响应中解析的字符串如下所示:

Membres –Économisez 5% sur les services et jusqu’à 15% sur d’autres produits

如何解码特殊字符?这样我就得到了这个:

会员 – 服务费用 5%,产品费用 15%

我查看了 NSString 的 API 并尝试了一些实例方法,但我对字符编码了解不多,最终得到了一些奇怪的结果。因此,如果您还可以提供有关字符编码的简要说明,我将非常感激。

提前致谢

Sta*_*ner 5

如果您仍在使用 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];
}
Run Code Online (Sandbox Code Playgroud)

如果你使用 swift

/sf/ask/1792507321/