在我的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上的值是正确的。抓住时为什么会发生这种情况?
答案 0 :(得分:2)
将编码更改为.utf8
我不确定为什么.ascii
不起作用,但我怀疑它与HTML实体编码有关。如果我找到理由,我会更新此答案......
更新:此w3schools.com page说明HTML现在被视为UTF-8标准。 UTF-8可以处理更大的字符集。显然,webview浏览器能够理解UTF-8中的HTML实体(例如,'
代表撇号),而不是ASCII。