python基础13_字符编码

什么是字符编码呢?

在讲字符编码的之前,我先讲一个东西叫字符集

什么是字符集呢?

python默认的字符集unicode

很简单,就是他把大部分国家的文字,符号,都集合过来,每一个文字或者说是符号都有一个编号去代表

你可以理解成高考

每个考生的准考证号,就代表这个学生

那么字符集也是一样的道理

每个编号就代表这个字符

a = "你"
# 那么它的字符集编号怎么看呢?
print(ord(a))
# 那么我们也可以通过字符集编号,查看它代表的字符
print(chr(20321))

再回过头来讲讲什么是字符编码

在讲字符编码之前,我在讲讲字节,

讲字节之前我在讲讲生活中的例子

你的一个文件的大小,单位是什么?

b,byte,kb,M,G,T

11111111

上面那个二进制数是8位

也就是是8b

换算

1byte (字节) = 8b

1kb = 1024byte

1M = 1024kb

1G = 1024M

1T = 1024G

前面这个就是代表数据的大小

在仔细讲讲字节

一个字节是8位

11111111

那么8位能够代表的数是不是最多可以代表256

也就是说一个字节可以代表256个数

如果一个数就代表一个字的话,那么是不是一个字节就可以代表256个字呢

我们中华文化博大精深对吧

肯定不止256个字啊

所以用两个字节去表示

这个时候两个字节有几种变化呢?

65536

但是我们汉字不止65536对吧

所以我们用三个字节

三个字节的变化就肯定能够包括所有的汉字了,每一种可能就是代表一个汉字

a = "你"
"那么现在用utf-8的编码格式,去把这个汉字换成字节"
print(a.encode("utf-8"))
"b'\xe4\xbd\xa0'"
# 这就是一个16进制的数,只是方便我们看而已,也就是换成10进制,代表的就是228,189,160这几个数组合就代表了你这个字
print(a.encode("gbk"))
# 196 227 两个字节就代表了这个你这个字符

 我们传输数据的时候,一个字,是怎么传输的

因为每个字都有一个编号(字符集里面的),然后我们再通过不同的编码格式,把这个编号(转码)转换成字节码(16进制),然后传输的时候,再转换成二进制,也就是电信号啥的,然后到你手机,或者你电脑,再转成字节码(16进制),然后在转成你看见的字(解码)

a = "你"
b = a.encode("utf-8")
print(b)
"下面就是把16进制解码成字符"
c = b.decode("utf-8")
print(c)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值