如何在go中将unicode字节数组转换为普通字符串

我从 unix 套接字获取字节数组并尝试打印为字符串。我只是string(bytes)得到以下字符串。

{\ “创建\”:1410263175,\ “ID \”:\ “f4e36130333537c3725e212f78d603742cf3da4b738272f7232338b0d61fa4fb \” \ “的ParentId \”:\ “a8a806a76e3e620a6f2172e401847beb4535b072cf7e60d31e91becc3986827e \”,\ “RepoTags \”:[\“\\ u003cnone \\ u003e:\ \u003cnone\\u003e\"],\"Size\":0,\"VirtualSize\":1260903901}\n,

如何删除转义字符\并将 unicode 字符\u003转换为普通字符串?


慕的地6264312
浏览 239回答 1
1回答

慕侠2389804

根据 JSON 规范,这看起来像一个带有 \u 转义的 JSON 字符串。JSON 解码器将负责对字符串进行转义。代码:s := "{\"Created\":1410263175,\"Id\":\"f4e36130333537c3725e212f78d603742cf3da4b738272f7232338b0d61fa4fb\",\"ParentId\":\"a8a806a76e3e620a6f2172e401847beb4535b072cf7e60d31e91becc3986827e\",\"RepoTags\":[\"\\u003cnone\\u003e:\\u003cnone\\u003e\"],\"Size\":0,\"VirtualSize\":1260903901}\n"var m map[string]interface{}if err := json.Unmarshal([]byte(s), &m); err != nil {&nbsp; &nbsp; log.Fatal(err)}fmt.Printf("%#v", m)打印以下内容(减去我为可读性添加的空格):map[string]interface {}{&nbsp; &nbsp; &nbsp;"Created":1.410263175e+09,&nbsp;&nbsp; &nbsp; &nbsp;"Id":"f4e36130333537c3725e212f78d603742cf3da4b738272f7232338b0d61fa4fb",&nbsp; &nbsp; &nbsp;"ParentId":"a8a806a76e3e620a6f2172e401847beb4535b072cf7e60d31e91becc3986827e",&nbsp;&nbsp; &nbsp; &nbsp;"RepoTags":[]interface {}{"<none>:<none>"},&nbsp;&nbsp; &nbsp; &nbsp;"Size":0,&nbsp;&nbsp; &nbsp; &nbsp;"VirtualSize":1.260903901e+09}playground在 Go 中将字节转换为字符串时不会创建 \u 转义符。它是 JSON 编码器生成的字节序列的一部分。字符串转换运算符 string(byteSlice) 将这些字节按原样转换为字符串。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go