代码之家  ›  专栏  ›  技术社区  ›  objectively C

Swift 3-撇号转换为屏幕上的刮号

  •  0
  • objectively C  · 技术社区  · 6 年前

    在我的Swift 3应用程序中,我从web api获取HTML文本,以便在UIWebView中呈现。然而,撇号(尤其是其他特殊字符)被渲染为重音字母,而不是它们的实际值。例如,“Transportation”(运输)的文本显示为“Transportation”(运输)。

    代码很简单。

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

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   leanne    6 年前

    将编码更改为 .utf8

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

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