为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕的地6264312 2021-08-23 15:58:49
我从 unix 套接字获取字节数组并尝试打印为字符串。我只是string(bytes)得到以下字符串。{\ “创建\”:1410263175,\ “ID \”:\ “f4e36130333537c3725e212f78d603742cf3da4b738272f7232338b0d61fa4fb \” \ “的ParentId \”:\ “a8a806a76e3e620a6f2172e401847beb4535b072cf7e60d31e91becc3986827e \”,\ “RepoTags \”:[\“\\ u003cnone \\ u003e:\ \u003cnone\\u003e\"],\"Size\":0,\"VirtualSize\":1260903901}\n,如何删除转义字符\并将 unicode 字符\u003转换为普通字符串?
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

根据 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 {

    log.Fatal(err)

}

fmt.Printf("%#v", m)

打印以下内容(减去我为可读性添加的空格):


map[string]interface {}{

     "Created":1.410263175e+09, 

     "Id":"f4e36130333537c3725e212f78d603742cf3da4b738272f7232338b0d61fa4fb",

     "ParentId":"a8a806a76e3e620a6f2172e401847beb4535b072cf7e60d31e91becc3986827e", 

     "RepoTags":[]interface {}{"<none>:<none>"}, 

     "Size":0, 

     "VirtualSize":1.260903901e+09}

playground


在 Go 中将字节转换为字符串时不会创建 \u 转义符。它是 JSON 编码器生成的字节序列的一部分。字符串转换运算符 string(byteSlice) 将这些字节按原样转换为字符串。


查看完整回答
反对 回复 2021-08-23
  • 1 回答
  • 0 关注
  • 238 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信