在我的 Swift 3 应用程序中,我从 Web API 获取 HTML 文本以在 UIWebView 中呈现。 但是,撇号特别是撇号,也许还有其他特殊字符呈现为重音字母,而不是它们的实际值。 例如,"运输"的文本显示为"运输"。
代码很简单。
var myHTMLString = try String(contentsOf: myURL, encoding: .ascii)
//myHTMLString = "some bâd string"
webview.loadHTMLString(myHTMLString, baseURL: nil);
API 上的值是正确的。 为什么在抓取时会发生这种情况?
将编码更改为.utf8
我不确定为什么.ascii
不起作用,尽管我怀疑它与 HTML 实体编码有关。如果我找到原因,我会更新这个答案...
更新:此 w3schools.com 页面解释了HTML现在被认为是UTF-8标准。UTF-8 可以处理更大的字符集。显然,Web视图浏览器可以理解UTF-8中的HTML实体(例如,'
表示撇号),但不能理解ASCII。