标签:简单 gbk 美国 显示 机器码 需求 ascii表 euc 文件处理
一、字符编码
1、什么是字符编码
把字符转换成计算机可识别的机器码(0,1)的过程,称之为字符编码。
2、字符编码的类型
1)现代计算机起源于美国,最早诞生也是基于英文考虑的ASCII
ASCII:一个Bytes(字节)代表一个字符(英文字符、键盘上的所有其它字符),1Bytes=8bit,8bit可以表示为2的8次方种变化,即可以表示256个字符。
ASCII最初只用了后攻位,127个数字,已经完全能够代表键盘上所有的字符了(英文字符/键盘的所有其他字符),后期将拉丁文也编码进了ASCII表,占用了最高位。
2)为了满足中文,中国人定制了GBK
GBK:2Bytes代表一个字符
为了满足需求,各国家分别定制了自己的编码。日文编码Shift_JIS,韩文编码Euc-kr。
3)各国编码遵循自己的标准,当在多语言混合的文本中,就会出现冲突,显示乱码。于是产生了unicode万国码。
unicode:统一用2Bytes代表一个字符,2**16-1=65535,可代表655535个字符,因而兼容万国语言。
由于固定使用2字节代表一个字符,对于英文文本来说,多占用了一倍的存储空间,于是产生了utf-8。
4)utf-8:对文本进行判断,中文使用3Bytes,英文字符只有1Bytes。
ps:unicode与uft-8比较:
unicode:简单粗暴,所有字符都是2Bytes,优点是字符->数字的转换速度快,缺点是占用空间大,(内存使用unicode速度快)。
utf-8:精准,对不同的字符用不同的长度表示,优点是节省空间,缺点是:字符->数字的转换速度慢,因为每次都需要计算出字符需要多长的Bytes才能够准确表示,(硬盘使用utf-8节省空间)。
3、字符编码的使用
以文本编辑器举例,不管时打开读取还是修改都是在内存中打开。
读取文件时,是decode的过程:把硬盘中utf-8格式的文本-》decode(翻译)-》内存unicode格式。
保存文件时,是encode的过程:把内存中unicode格式的文本-》encode(翻译)-》硬盘中utf-8格式。
4、python3与2中编码的区别
python3中所有的字符串都会被识别成unicode 字符编码。
python2中所有的字符串就是编码后的结果bytes字节。
标签:简单 gbk 美国 显示 机器码 需求 ascii表 euc 文件处理
原文地址:http://www.cnblogs.com/zhangmeixia/p/6857448.html