【发布时间】:2012-12-23 04:49:07
【问题描述】:
我需要读取[100]byte 来传输一堆string 数据。
由于并非所有strings 的长度都正好是100 个字符,所以byte array 的剩余部分用0s 填充。
如果我通过string(byteArray[:]) 将[100]byte 转换为string,则尾部0s 将显示为^@^@s。
在 C 中,string 将在 0 处终止,那么在 Go 中将 byte array 转换为 string 的最佳方法是什么?
【问题讨论】:
-
@AndréLaszlo:在操场上,
^@没有显示,但如果你在终端或类似的地方测试它,它就会在那里。这样做的原因是,Go 在找到 0 时不会停止将字节数组转换为字符串。在您的示例中,len(string(bytes))是 5 而不是 1。这取决于输出函数,字符串是否完整(使用零)打印与否。 -
对于 http 响应正文,使用
string(body)。
标签: go