首页 >后端开发 >Golang >如何防止 JSON 响应显示 ASCII 代码而不是字符?

如何防止 JSON 响应显示 ASCII 代码而不是字符?

Patricia Arquette
Patricia Arquette原创
2024-11-28 15:22:10392浏览

How to Prevent JSON Responses from Displaying ASCII Codes Instead of Characters?

如何在 JSON 响应中显示字符而不是 ASCII

在此编程问题中,用户遇到了以下问题:JSON 数据包含和符号“&”以其 ASCII 代码“u0026”显示,而不是实际的

解决问题:

提供的解决方案涉及利用 Go1.7 中引入的功能。通过在 JSON 编码器中禁用 HTML 转义,可以保留与字符在 JSON 数据中的原样。

使用 Encoder.DisableHTMLEscaping 实现:

禁用 HTML转义,使用 Encoder.DisableHTMLEscaping 方法。此方法将编码器的 EscapeHTML 字段设置为 false,从而有效地禁用 HTML 字符的转义。

encoder := json.NewEncoder(responseWriter)
encoder.SetEscapeHTML(false)

通过使用此方法修改代码,HTTP 服务器现在将显示 & 符号而不进行任何 ASCII 转换。这是 testFunc 函数的修改版本:

func testFunc(w http.ResponseWriter, r *http.Request) {
    data := make(map[string]string)
    data["key"] = "&"

    encoder := json.NewEncoder(w)
    encoder.SetEscapeHTML(false)

    if err := encoder.Encode(data); err != nil {
        fmt.Fprintln(w, "Failed to generate JSON.")
    }
}

现在,浏览器和控制台都将按预期显示 & 字符,无需任何 ASCII 转换。

以上是如何防止 JSON 响应显示 ASCII 代码而不是字符?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn