使用string()时添加随机字节

时间:2014-05-05 23:43:47

标签: go

我试图对两个值进行异或。如果我这样做,我可以得到正确的结果,但是,使用string()会导致添加一个随机字节!

任何人都能解释一下吗?

这是一个游乐场:http://play.golang.org/p/tIOOjqo_Fe

1 个答案:

答案 0 :(得分:7)

所以,你有:

z := 175 // 0xaf

这是角色的unicode代码点:¯

接下来的代码行将获取该值并将其视为unicode代码点(符文)并将其转换为utf-8编码的字符串:

out := string(z)

在utf-8编码中,该字符将由两个字节表示:[]byte(0xc2, 0xaf)

因此,您看到的字节是Go字符串的utf-8编码。