python编码知识初始_ASCII码,Unicode,Utf-8,GBK
谍战片,电报,摩斯密码,相应规则(暗号),编码解码;
电脑底层是高低电平来传输信息(OSI七层模型,最底层);文件存储的本质,也是二进制,01010101
美国:ASCII码(8位表示一个字节 0000 0001)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。 [2]
ASCII码表网上可查。http://tool.oschina.net/commons?type=4
本来ASCII码只用到7位,设计者多留1位,预留以便以后扩展,所以ASCII码最左边的以为全是0(预留位)。
8位bit == 1个字节(byte) 1024(字节)byte = 1kb 1024 kb == 1MB 1024MB == 1GB 1024GB == 1TB
中文:9万多字,为满足全球化需求,ASCII码必须拓展。 美国为解决此问题,创建万国码,Unicode;
Unicode规定:
用一个字节(8位),表示所有的英文,特殊字符,数字等等
用四个字节(32位),表示一个中文,足够(统计:21位足够所有语言使用)
缺陷:浪费资源,空间,针对此问题,对Unicode进行升级,即utf-8
Utf-8(Unicode升级版)规定:一个中文 3个字节(24位)去表示,也包含其他语言。
GBK,仅在国内使用,一个中文用2个字节表示(不能包含所有中文)。
最好用:Utf-8