
假如拿到了一个字节切片test1 = {'a', 'b', 'c', 'd', 11}
package main
import (
"fmt"
"reflect"
)
func main(){
test1 := []byte {'a', 'b', 'c', 'd', 11}
fmt.Println(test1)
test2 := string(test1)
fmt.Println(test2)
fmt.Println(reflect.TypeOf(test1[0]))
return
}
打印的结果
[97 98 99 100 11]
abcd
uint8
这其实就是ASCII码值与英文ASCII字符的互转。ASCII的码值本质上就是uint8类型。 留意一下11对应的是垂直制表符(控制字符), 因此打印出来是看起来是乱码的 “”这个。
对于ASCII码表,应该能简单的记忆一些常用的,有时候比较方便。 参考: http://asciima.com/
这篇博客主要是记录今天遇到的一个Bug: 在用sring对字节序列进行强转时,报了一个不是uint8的错误。
字节 --> 字符串
因此应该先确定是哪种编码,指定编码的类型,然后再选择转换的方式。