拓展 Python 之 字符串编码

Python 之 字符串编码

计算机只认识数字。然而,我们平时在使用计算机时用的都是人类能读懂的字符。如何能让计算机能够读懂人类的字符?

字符-------------------(翻译过程)--------------------数字

所谓字符编码,就是一个字符如何对应一个特定数字的标准。字符编码发展的三个阶段:
1、ASCII码:一个Bytes代表一个字符,1Bytes=8bits,8bit可以表示0~2^8-1种变化(即可以表示256个字符)。 最初只用了后7位,已经完全能够表示键盘上所有的字符了。 后来为了将拉丁文也包含进ASCII表,将最高位也占用了。
2、为了满足中文和英文,中国人制定了‘GBK’。2Bytes代表一个中文字符,1Bytes代表1个英文字符。 为了满足自身的需要,各国也纷纷制定自己的编码。
3、各国有各国的标准,就会不可避免地产生冲突,就会产生乱码,乱码问题的本质就是不统一。解决这个问题?
统一全世界?不现实 unicode(万国码)(定长) unicode统一用2个Bytes代表一个字符。 对于全篇都是英文的文本来说,Unicode编码无疑是多了一倍的存储空间。 于是就产生了UTF-8(可变长,Unicode Transformation Formate),对英文字符只用1Bytes表示,对中文字符则用3Bytes表示,其他生僻字用更多的Bytes去存。 目前的现状:内存中的编码固定就是unicode,唯一可变的就是硬盘上对应字符的编码。

总结:
1、 在存入磁盘时,需要将unicode转换成一种更为精准的编码格式:utf-8,将数据量控制到更精简。
2、在读入内存时需要将utf-8转成unicode

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值