计算机储存数据是以二进制的形式储存的
编码: 就是将 字符 和 二进制 一 一对应起来
即: 使用哪个二进制 代表 哪个字符
1.ascii码包含128个字符, 英文字母和其它符号, 它占用一个字节
比如空格符-ascii码值是32, 使用二进制表示为: 00100000
计算机中储存的就是这个二进制数就表示空格符
2.unicode码, 包含世界上所有的符号(各个国家语言文字符号)
每一个符号都独一无二的编码, 即unicode是所有符号的编码
Unicode它规定了符号的二进制代码
Unicode存在严重问题, 占2-4个字节, 存储字母则浪费空间
还有就是对于多个字节, 不知道是它表示多个字符还是一个字符
所以unicode只是规定字符对应的二进制, 并不规定如何储存
3.UTF-8是unicode的一种实现方式, 确定unicode的一种储存方式
UTF-8它是一种变长的编码方式。根据不同的符号而变化字节长度(1~4个字节)
比如, 通常使用UTF-8表示字符: 一个字节, 表示汉字: 三个字节
编程语言几乎都是以utf-8储存数据的
func main() {
str := "中"
fmt.Println(len(str)) //3
str = "a"
fmt.Println(len(str)) //1
str = "hello 中国"
fmt.Println(len(str)) //12
}
注: len() 函数表示字符串的 ASCII 字符个数或字节长度