【Python基础】day4——字符编码、解码

字符编码的发展历程:

二进制
---->ASCII:只能存英文或者拉丁字符,一个字符占一个字节(一个字节八位)
-------->gb2312:只能存6700多个英文,1980年
------------>gbk1.0:存2万多个字符,1995年
---------------->gb18030:存2.7万个中文,2000年
-------------------->unicode:万国码,Unicode的表现形式是utf-32,存所有的字符都占用4个字节。
------------------------>unicode:万国码,Unicode的表现形式是utf-16,一个字符占2个字节,65535。
---------------------------->unicode:万国码,Unicode的表现形式是utf-8:可变长字节,一个英文用ASCII码来存,一个中文占3个字节。

 

  • 编码encode
  • 解码decode

 

编码与解码的应用示例:

  • 不同国家之间的语言不同,例如说我们在中国制作一款游戏,游戏中的字幕全部是中文的形式展示,那么如果游戏后期发展需要在日本等国外上线,那么游戏在国外运行将会乱码,前期使用的解决方案是在游戏中加入日文包,或者韩文包,但是如果国家很多的话,导入的包就太多了,为了解决这个问题,我们使用的方案就是编码和解码的过程,比如说,国际上通用的语言就是英文,那么我们将国内中文版的游戏字幕编码为unicode的形式,然后外国,比如日本要上线这款游戏的话,只需要对游戏中的unicode编码进行解码,解码成日文就可以了。
  • 也就是说中文和日文之间不能直接沟通,需要通过编码和解码去实现


python2中,内存里的unicode的形式默认是utf-16

python3查看系统默认编码

import sys
print(sys.getdefaultencoding())


结果:

utf-8

Process finished with exit code 0

python3编码:

import sys
print(sys.getdefaultencoding())

s = '特斯拉'
s_to_gbk = s.encode("gbk")
print(s)
print(s_to_gbk)

结果:

utf-8
特斯拉
b'\xcc\xd8\xcb\xb9\xc0\xad'

Process finished with exit code 0

 

  • encode在进行编码的同时,会把数据转换成bytes类型
  • decode在进行解码的同时(解码就是解码成unicode),会把bytes类型转换为字符串
  • b = byte = 字节类型 = [0-255] 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值