首页 > 解决方案 > 为什么将单个字节类型转换为字符串在 go 中不起作用?

问题描述

我正在尝试将单个字节值转换为 golang 中的字符串。当我将字节类型转换为字符串string(byte)并打印我得到"{"的响应值时。我读了其他答案,将字节转换为字符串的正确方法是strconv.Itoa(int(bytevalue)). 为什么前者不起作用,为什么后一种方法是正确的。

标签: go

解决方案


该表达式string(bytevalue)是转换,而不是类型转换。规范说明了从数字类型到字符串的转换:

将有符号或无符号整数值转换为字符串类型会生成一个包含整数的 UTF-8 表示形式的字符串。

该表达式的string(byte(123))计算结果为字符串"{",因为 {它是包含符文 123 的 UTF-8 表示的字符串。

使用 strconv 包获取字节的十进制表示。该表达式的strconv.Itoa(int(byte(123)))计算结果为字符串"123"


推荐阅读