首頁 >後端開發 >Golang >如何防止 JSON 回應顯示 ASCII 代碼而不是字元?

如何防止 JSON 回應顯示 ASCII 代碼而不是字元?

Patricia Arquette
Patricia Arquette原創
2024-11-28 15:22:10375瀏覽

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