当我在0x80或更高的字符串上添加单个字节时,golang会在我的字节之前添加0xc2。我认为这与utf8符文有关。无论哪种方式,我如何只将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
从规格:
将有符号或无符号整数值转换为字符串类型会产生一个包含整数的UTF-8表示形式的字符串。
表达式string(0x80)的计算结果为UTF-8表示形式为0x80的字符串,而不是包含单个字节0x80的字符串。0x80的UTF-8表示形式是0xc2 0x80。
使用\ x十六进制转义在字符串中指定字节0x80:
s += "\x80"
您可以使用string([] byte)转换从任意字节序列创建一个字符串。
s += string([]byte{0x80})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句