在 Python 2.7 中,如果我对 JSON 进行编码,我会得到 unicode 转义的字符串:
>>> import json
>>> s = {"text": "三杯雞"}
>>> print(json.dumps(s))
它给出了这个输出:
{"text": "\u4e09\u676f\u96de"}
但是在 Go 中,类似的代码:
package main
import (
"encoding/json"
"fmt"
)
type Food struct {
Name string `json:"name"`
}
func main() {
food := Food{Name: "三杯雞"}
v, _ := json.Marshal(food)
fmt.Println(string(v))
}
给出了这个:
{"name":"三杯雞"}
汉字没有转义。我正在将 API 端点从 Python 移植到 Go - 如何让它具有与 Python 相同的转义输出?
我尝试使用变体strconv.QuoteToASCII,但它们导致 unicode 被双重转义:
func main() {
s := strconv.QuoteToASCII("三杯雞")
s = strings.Trim(s, "\"")
food := Food{Name: s}
v, _ := json.Marshal(food)
fmt.Println(string(v))
}
输出:
{"name":"\\u4e09\\u676f\\u96de"}
蛊毒传说
相关分类