Swift 3 - 在屏幕抓取中,撇号被转换为 â

Swift 3 - Apostrophes being converted to â on screen-scrape

在我的 Swift 3 应用程序中,我从 Web api 获取 HTML 文本以在 UIWebView 中呈现。但是,特别是撇号和其他特殊字符呈现为重音字母而不是它们的实际值。例如,“Transportation’s”的文本显示为“Transportationâs”。

代码很简单。

var myHTMLString = try String(contentsOf: myURL, encoding: .ascii)
//myHTMLString = "some bâd string"
webview.loadHTMLString(myHTMLString, baseURL: nil);

API 上的值是正确的。为什么抓取的时候会出现这种情况?

将编码更改为 .utf8

我不确定为什么 .ascii 不起作用,但我怀疑它与 HTML 实体编码有关。如果我找到原因,我会更新这个答案...

更新w3schools.com page 说明 HTML 现在被认为是 UTF-8 标准。 UTF-8 可以处理更大的字符集。显然,webview 浏览器可以理解 UTF-8 格式的 HTML 实体(例如,' 表示撇号),但不能理解 ASCII。