You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift 3中UIWebView渲染API返回HTML时撇号显示异常问题

解决Swift 3中UIWebView渲染HTML特殊字符乱码问题

嘿,这个问题我太熟了!你现在碰到的撇号变成乱码(比如“Transportation’s”显示成“Transportationâs”)的问题,根源完全在读取HTML内容时用错了字符编码~

你当前用.ascii编码去解析Web API返回的内容,但现在几乎所有现代Web接口返回的都是UTF-8编码的内容。ASCII编码只支持最基础的英文字符,像’这种Unicode特殊字符,用ASCII解析就会被错误转换成乱码。

直接把编码改成.utf8就能解决问题,修正后的代码如下:

do {
    let myHTMLString = try String(contentsOf: myURL, encoding: .utf8)
    webview.loadHTMLString(myHTMLString, baseURL: nil)
} catch {
    // 可以在这里添加错误处理逻辑,比如打印错误信息
    print("读取HTML内容失败:\(error)")
}

另外给你个额外的小建议:为了彻底避免渲染时的编码问题,你可以给HTML字符串手动加上编码声明的头部,双重保障更稳妥:

do {
    let rawHTML = try String(contentsOf: myURL, encoding: .utf8)
    // 包裹带编码声明的HTML结构
    let formattedHTML = """
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
    </head>
    <body>
        \(rawHTML)
    </body>
    </html>
    """
    webview.loadHTMLString(formattedHTML, baseURL: nil)
} catch {
    print("读取HTML失败:\(error)")
}

内容的提问来源于stack exchange,提问作者objectively C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:31:43