字符编码

Posted zhengiaox

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符编码相关的知识,希望对你有一定的参考价值。

字符编码

每个国家多有自己的编码比如:

ASCII 占一个字节 只支持英文

GBK GB2312升级版支持21000+汉字

Shift-JIS日本字符

KS-c-5601-1987韩国编码

TIS-620 泰国编码


为了解决各国之间编码不统一问题,国际组织ICO出手搞了unicode编码支持24个字节

作用:

1.支持全球所有语言

2.Unicode包含了跟全球所有国家编码的映射关系



解决:字符和二进制的对应关系(因为unicode是一张编码表,要转成二进制存到硬盘上)

为了解决存储和网络传输的问题,出现了Unicode Transfmation Fonmat ,学术名UTF即是对unicode的压缩

UTF

UTF-8:使用1,2,3,4个字节表示所有字符(其中:英1个字节,欧洲2个字节,亚洲3个字节)

UTF-16:使用2,4个字节表示所有字符

UTF-32:使用4个字节表示所有字符

总结:UTFunicode编码 设计的一中在存储和传输时节省空间的编码方案。



字符在硬盘上怎么存储的?

无论以什么编码在内存里显示字符,存到硬盘上多是二进制,转二进制一定是按某种编码转的二进制。

注:存到硬盘上时是以何种编码存的,再从硬盘上读出来就必须以何种编码读,要不然就乱了。



字符编码的转换。

若想让中国的软件可以正常的在美国人的电脑上显示只有两条路可走:

1.让美国人的电脑上多装上GBK编码

2.把你的软件编码以UTF-8编码

第一种几乎不可能实现,第二种只适合新开发软件

如果是中国10年前开发GBK编码软件,利用unicode映射转换.

现所有的系统,编程语言多默认支持Unicode,那你的GBK软件放到美国电脑上,加载到内存里变成unicode,中文就可以正常展示了。



Python3的执行过程(默认文件编码是utf-8

1.解释器找到代码文件,把代码字符串按文件头定义的编码加载到内存,转成Unicode

2.把代码字符串按照语法规则进行解释

3.所有的变量字符多会以Unicode编码申明

并不是所有的编程语言在内存里默认编码多是UNICODE比如:Python2ASCII



手动转:decode(解码)encode(编码)

1.UTF-8==>decode==>Unicode

2.Unicode==>encode==>GBK/utf-8



#_*_coding:utf-8_*_

s = ‘路飞学城

print(s)

s.decode("utf-8") == s = u ‘路飞学城


























以上是关于字符编码的主要内容,如果未能解决你的问题,请参考以下文章

如何查看字符编码类型

Python 字符集编码 - UTF-8 编码

unicode字符集是多少位的字符编码

刨根究底字符编码之九——字符编码方案的演变与字节序

公众号回复表情 和 关于字符集和字符编码

编码方式的编码方式