为什么 Go 向我的字符串添加字节?

当我在 0x80 或以上的字符串中添加一个字节时,golang 会在我的字节之前添加 0xc2。我认为这与utf8 runes 有关。无论哪种方式,我如何将 0x80 添加到字符串的末尾?


例子:


var s string = ""

len(s) // this will be 0

s += string(0x80)

len(s) // this will be 2, string is now bytes 0xc2 0x80


一只名叫tom的猫
浏览 253回答 1
1回答

子衿沉夜

来自规范:将有符号或无符号整数值转换为字符串类型会生成一个包含整数的 UTF-8 表示的字符串。表达式 string(0x80) 计算结果为 UTF-8 表示为 0x80 的字符串,而不是包含单字节 0x80 的字符串。0x80 的 UTF-8 表示是 0xc2 0x80。使用 \x 十六进制转义指定字符串中的字节 0x80: s += "\x80"您可以使用 string([]byte) 转换从任意字节序列创建字符串。 s += string([]byte{0x80})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go