为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
一只名叫tom的猫 2021-11-08 16:15:45
当我在 0x80 或以上的字符串中添加一个字节时,golang 会在我的字节之前添加 0xc2。我认为这与utf8 runes 有关。无论哪种方式,我如何将 0x80 添加到字符串的末尾?例子:var s string = ""len(s) // this will be 0s += string(0x80)len(s) // this will be 2, string is now bytes 0xc2 0x80
查看完整描述

1 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

来自规范

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

表达式 string(0x80) 计算结果为 UTF-8 表示为 0x80 的字符串,而不是包含单字节 0x80 的字符串。0x80 的 UTF-8 表示是 0xc2 0x80。

使用 \x 十六进制转义指定字符串中的字节 0x80:

 s += "\x80"

您可以使用 string([]byte) 转换从任意字节序列创建字符串。

 s += string([]byte{0x80})


查看完整回答
反对 回复 2021-11-08
  • 1 回答
  • 0 关注
  • 252 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信