编程语言
首页 > 编程语言> > Python06

Python06

作者:互联网

今日内容概要

今日内容详细

字符编码

计算机是基于电工作的,而电信号只有高低电平两种状态,也就是说计算机只认识两种状态,认为的定义为数字0和1即二进制。

人类的字符与数字之间存在对应关系,相当于发电报彼此携带的密码本一样。

字符编码发展史

  1. 一家独大
    因为计算机是美国人发明的,计算机只认识01二进制,为了让计算机认识英文,美国人制定了一个由二进制数字组合与英文字符的对应关系>>>"字符编码表"
    ASCII码表:记录了英文字符与数字的对应关系,用一个字节来表示英文字符
    1bytes = 8bit # 2的八次方 256
    英文字符跟符号总共加起来不超过127个
     该阶段的计算机只认识英文不认识其他国家的字符

  2. 群星割据
    渐渐地其他国家也开始使用计算机,为了能让计算机认识本国文字,各自制定了不同的编码表
    中国人GBK编码表:记录了中文字符、英文字符与数字对应关系,用两个字节来表示中文 一个字节表示英文字符
                                     2bytes = 16bit  # 2的十六次方  65536 有时候针对生僻字无法表示 需要更多位数3bytes 4bytes
    韩国人Euc_kr编码表:记录了韩文字符、英文字符与数字的对应关系
    日本人shift_JIS编码表:记录了日文字符、英文字符与数字的对应关系
    该阶段的计算机不同国家使用不同的编码表

  3. 天下一统
    群雄割据阶段有一个不可忽视的问题:不同国家计算机之间数据无法交互,为此人类发明了unicode编码表。
    unicode编码表(万国码):内部兼容万国语言,所有的字符全部采用2bytes来表示 如果不够则增加位数。但是这也会出现一个问题,针对纯英文的文本数据原本只需要比如1G的容量,那么采用了unicode之后就需要2G的容量,读取文件的时间也翻倍了,这时就得靠utf8编码
    utf8编码(unicode转换版本):会对unicode编码做优化,英文还是用1bytes来表示。 # 内存使用unicode兼容万国 存储到硬盘使用utf8节省资源
    该阶段的计算机不同国家也可以无障碍的交互

结论:现在的文本文件默认都使用utf8编码

 

标签:字符,英文,计算机,编码,utf8,Python06,unicode
来源: https://www.cnblogs.com/hzh1678053026/p/15147664.html