utf-8编码

计算机储存数据是以二进制的形式储存的

编码: 就是将 字符 和 二进制 一 一对应起来

即: 使用哪个二进制 代表 哪个字符

 

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 字符个数或字节长度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值