程序中使用到一段代码
data:=[4]byte{1,2,3,4}
想转成字符串显示,试了使用
str:=string(data)
fmt.Print(str)
但是输出为空白,不知道应该怎样转换?
ASCII编码不是都可见的。
package main
import (
"fmt"
)
func main() {
data := [4]byte{0x31, 0x32, 0x33, 0x34}
str := string(data[:])
fmt.Println(str)
}
这样做是不高效的,但是可以简写如下:
func convert( b []byte ) string {
s := make([]string,len(b))
for i := range b {
s[i] = strconv.Itoa(int(b[i]))
}
return strings.Join(s,",")
}
调用
bytes := [4]byte{1,2,3,4}
str := convert(bytes[:])
很简单,1,2,3,4映射到ascii码中都不是可见字符。
不信?
你打印65,66,67,68看看是不是大写的ABCD。
另附ASCII码表
http://baike.baidu.com/link?u...
会是空白吗?我以为会输出1,2,3,4对应的ascii码,特殊的字符