首页 > 后端开发 > Golang > Go中如何高效地将UTF-8字符串转换为字节数组?

Go中如何高效地将UTF-8字符串转换为字节数组?

DDD
发布: 2024-10-29 07:47:30
原创
674 人浏览过

How to Efficiently Convert UTF-8 Strings to Byte Arrays in Go?

将 UTF-8 字符串转换为字节数组

解组 JSON 需要字节切片输入,而字符串在 Go 中存储为 UTF-8 。本文探讨了 UTF-8 字符串到字节数组的高效转换。

直接转换

Go 允许将字符串转换为字节切片,创建字符串字节的副本:

<code class="go">s := "some text"
b := []byte(s)</code>
登录后复制

但是,对于大字符串,由于复制,这种方法效率较低。

使用 io.Reader

一种有效的替代方法使用 strings.NewReader() 创建一个 io.Reader,它从字符串中读取而不进行复制:

<code class="go">s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&result)</code>
登录后复制

这种方法避免了复制字符串。

小型 JSON 文本

对于小的 JSON 文本,直接转换仍然是一个快速的选择:

<code class="go">s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.Unmarshal([]byte(s), &result)</code>
登录后复制

注意:从 io.Reader 读取 JSON 时(例如,文件或网络),将 io.Reader 直接传递给 json.NewDecoder(),无需中间字符串读取。

以上是Go中如何高效地将UTF-8字符串转换为字节数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板