”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Go 中如何高效地将 UTF-8 字符串转换为字节数组?

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

发布于2024-11-08
浏览:471

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

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

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

直接转换

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

s := "some text"
b := []byte(s)

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

使用 io.Reader

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

s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&result)

此方法避免复制字符串。

小型 JSON 文本

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

s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.Unmarshal([]byte(s), &result)

注意: 从 io.Reader(例如文件或网络)读取 JSON 时,传递 io.err := json.Unmarshal([]byte(s), &result)

How to Efficiently Convert UTF-8 Strings to Byte Arrays in Go? 
Reader 直接读取 json.NewDecoder(),无需中间字符串读取。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3