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。
在我的 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。