```go
type Test struct {
Name [16]byte
}
```
读出16个字节后,假如是"hello", 那么后面势必跟着一堆 "\x00\x00..." 填充直到16长度。
问题是,后面的填充不一定是 "\x00\x00..",有可能是内存中一些未知表示,之前存过的值,如"hello\x003cade4e832627b4f6\x00\x00\x00\x00\..", 但"hello"之后必定有一个"\x00", 因为C语言中这个\0表示字符结束,后面的C语言不读了,认为结束了,所以C/C++读是没问题的,打印出来就是一个 "hello"
但用golang读出来就后面有一堆奇怪字符 ,比如 "hello 3cade4e832627b4f6 ",这种。
这个要怎么处理? 找到第一个"\x00" 切掉后面?
有没有更好的方法?
更多评论
这个好像只能自己找\x00,切掉后面。
因为二进制数据,假如结构体已经定好是16 byte长度,读出来就是16byte, 即使未达到16byte,比如 显示 "hello", 其实它的长度是16byte, 只是后面的\x00\x00。。没有显示出来而已。 其实际字符是 "hello\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00",用肉眼看,还以为是"hello",这样是没问题的。。
#3