代码改变世界

字符编码与二进制

2017-06-28 20:28  Roberto  阅读(1326)  评论(0编辑  收藏  举报

字符编码的由来:

计算机只认识0和1,因为计算机底层就是电路
二进制可以使用数字转换
二进制字符编码,可以使用数字来表示字符
ASCII码最多用8位来表示一个字节,英文使用了127个字符,预留128-255
128-255进行扩展 ,在扩展中加入了7000多个中文字符,1980年定义的就是GB2312
1995年收录了20000多个汉字,就是GBK
2000年使用了GB18030,收录了27000多字符,包含藏文,蒙文等
字符编码向下兼容

最常用的中文编码就是GBK

国际ISO标准组织就叫Unicode,就是万国码,不兼容GBK
UTF8就是Unicode,可变长的字符集,英文字符用UTF8存储就是ASCII码,用中文就是UTF8

ASCII 255 1Bytes
----->1980 GB2312 7xxx
------> 1995 GBK1.0 2W+
------> 2000 GB10830 27xxx
------>unicode 2bytes
------> UTF-8 en:1bytes,zh:3bytes

Python2里显示中文需要申明编码:
# -*- coding:utf-8 -*-

Python3默认就是utf8,可以直接打印输出