标签:code strong 中文字符 过程 使用 方式 二进制 网络 encode
计算机内存的编码是Unicode
编码方式表示的。但是数据要是想要保存到硬盘或者进行网络传输,就会使用utf-8或者gbk,在中国的的话,系统默认是gbk编码,那为啥不直接用Unicode进行传输呢?
虽然Unicode可以容纳最多的字符种类但是它所占用的空间也非常大,所以在持久化存储或者网络传输的情况下,会选择其他编码。
编码解码其实就是Unicode和其他编码之间的转化
编码:Unicode----其他
解码:其他----Unicode
我们在电脑上看到所有字符’abc‘啥的其实就是内存中的Unicode格式的数据。
当我们保存的时候,才会进行编码,但我们打开文件会进行解码
乱码
什么情况会出现乱码呢?
当我们输入“中国”,这个“中国”就会在内存中以Unicode的形式存在,当我们以acsii的格式进行编码,ascii无法识别Unicode的一些中文字符,所以会乱码或者报错
编码:字符串--比特流
解码:比特流--字符
先来说一下下面的过程
python中字符串默认就是Unicode格式的
str--->(encode)--->bytes,bytes--->(decode)--->str
1.将字符串对应gbk形式转化为二进制形式\x是16进制
2.将二进制对应GB2312转化成字符串
zx="阿SDK"
print(zx)
zx=zx.encode("gbk")
print(zx)
zx=zx.decode("GB2312")
print(zx)
阿SDK
b'\xb0\xa2SDK'
阿SDK
标签:code strong 中文字符 过程 使用 方式 二进制 网络 encode
原文地址:https://www.cnblogs.com/zx125/p/11478794.html