相关疑难解决方法(0)

在json编码golang中转义unicode字符

给出以下示例:

\n\n
func main() {\n    buf := new(bytes.Buffer)\n    enc := json.NewEncoder(buf)\n    toEncode := []string{"hello", "w\xc3\xb6rld"}\n    enc.Encode(toEncode)\n    fmt.Println(buf.String())\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我希望输出带有转义的 Unicode 字符:

\n\n
\n

[“你好”,“w\\u00f6rld”]

\n
\n\n

而不是:

\n\n
\n

[“你好”,“w\xc3\xb6rld”]

\n
\n\n

我试图编写一个函数来引用 Unicode 字符,strconv.QuoteToASCII并将结果提供给Encode()然而,这会导致双重转义:

\n\n
func quotedUnicode(data []string) []string {\n    for index, element := range data {                                                \n                quotedUnicode := strconv.QuoteToASCII(element) \n                // get rid of additional quotes                         \n                quotedUnicode = strings.TrimSuffix(quotedUnicode, "\\"") \n                quotedUnicode = strings.TrimPrefix(quotedUnicode, "\\"") \n                data[index] = quotedUnicode                               \n         }                                                                                                                                    \n …
Run Code Online (Sandbox Code Playgroud)

unicode encoding character-encoding go

5
推荐指数
1
解决办法
1764
查看次数

标签 统计

character-encoding ×1

encoding ×1

go ×1

unicode ×1