字符编码
文字是如何显示的
128 64 32 16 8 4 2 165 0 1 0 0 0 0 0 1
108 0 1 1 0 1 1 0 1
148 0 0 1 1 0 0 0 0二进制 ——》十进制 9
A 1101101
l 1101101
e
x
11011011101101
设定为,每8个2进制位代表一个字符
论断句的重要性 8bit = 1bytes 字节 ,代表 1个字符
1024字节 = 1Kb 1024个字符
1024Kb = 1Mb
1024MB = 1GB 一部电影
1024GB = 1TB
中文是如何显示的
1980 gb2312 6763 2个字节 代表 一个字符
1995 GBK1.0 20000多个字符 ,
2000 GBK 280000我的名字叫Alex , 2
010101010101010101010
如果2个高位字节 同时出现 , 就认定这是个中文字符 , 就去gbk编码表里找对应的值 ,
否则就使用ascii 来进行编码
2mb ascii
4mb gbk
编码的战国时代
中国人使用自己gbk的同时, 日本 人shift_JIS , KS.xxx, TH...
日本游戏 ————》中国 电脑 上没日本 编码集————》导致乱码
要想不乱——》装 语言包 shift_JIS ————》 能在中国电脑 上正常显示日文
很麻烦 ,文化交流障碍
联合国 万国码 1. 支持全球所有的语言, Unicode 2-4字节 已经收录136690个字符,并还在一直不断扩张中.. 2. 还可以与全球各个语言进行转换, unicode => gbk, =>shift_JIS , =>Big5 为什么要跟各个语言互相转? 1990. 1980、 1. 很多软件 基于gb2312 开发, 转向unicode等于推倒重来 2. unicode=像英语 , gbk=汉语, 没有强烈的需求要全转成unicode . 全球计算机厂商出厂都支持unicode 。 大多数软件的程序,都支持unicode .
utf-8
unicode 带来了新问题 , 在内存里,空间大,没问题, 传输或者存到硬盘,空间大了一倍, 浪费 +效率 低。针对unicode的传输+存储 , 做了一个新编码 , utf(Unicode Transformation Format)-8
UTF-8: 使用1、2、3、4个字节表示所有字符;优先使用1个字符、无法满足则使增加一个字节,最多4个字节。英文占1个字节、欧洲语系占2个、东亚占3个,其它及特殊字符占4个
UTF-16: 使用2、4个字节表示所有字符;优先使用2个字节,否则使用4个字节表示。
UTF-32: 使用4个字节表示所有字符;文字 在内存里 是unicode --> 传输--》转成utf-8
py 2 = ascii
py3 = unicode