【发布时间】:2017-11-10 19:08:20
【问题描述】:
我不是 100% 确定为什么我的 unicode 二进制字符串不起作用..谁能指出问题或帮我修补它?另外,我将二进制文件分块的原因是它太大而 ParseInt 无法处理。有关示例,请参见下面的游乐场链接。
func binToString(s []byte) string {
var counter int
chunk := make([]byte, 7)
var buf bytes.Buffer
for i := range s {
if i%8 == 0 {
counter = 0
if i, err := strconv.ParseInt(string(chunk), 2, 64); err == nil {
buf.WriteString(string(i))
}
} else {
chunk[counter] = s[i] //i know i can use modulus here too but i was testing and an counter was easier to track and test for me
counter++
}
}
return buf.String()
}
在转换时它要么似乎遗漏了一个字符,要么添加了一个(或两个)字符。
这是一个playground link,显示了该函数未按预期工作的示例。
【问题讨论】: