您的位置:首页 > 编程语言 > Python开发

python基础-14-史上最通俗易懂的编码讲解

2017-11-23 10:15 357 查看

常用编码 ascii unicode utf-8 gbk

编码
ascii
unicode
utf-8
gbk


机器底层 只认识0 1

计算机开始设计:
8bit=1byte
(字节)

0000 0000


每个位置只有0和1,
2**8=256
也就是
0-255


西方国家:

ASCII表只有127个,每个字符一个字节

26个大写字母+26小写字母+10个数字+特殊字符=127个

西方国家127个已经够了,128到255预留给其他国家使用

汉字 常用5000个 简体繁体加起来有2万多个

GB2312 6000汉字,兼容ASCII

GBK 包括了GB2312 的所有内容,增加了近20000个新的汉字(包括繁体字)和符号。

GB18030 将中国几乎所有的字符都收录了

编码混乱

各国都在将自己语言文字编码,ISO组织看不下去了,unicode应运而生

unicode又叫万国码,设计占用2个字节(不管什么字符,都是2字节)
2**16
0-65535


UTF-8编码

unicode是一个字符集,收录所有字符,并没有存储情况

英文只占1个字节 汉字占用3个字节

编码占用字节

ascii 一个字节

gbk 两个字节

utf-8 英文字符1字节,汉字3字节

unicode 占用 2个字节

windows编码查看

cmd
输入
chcp
活动代码页:
936  -->cp936 -->gbk


utf-8和gbk使用范围:

utf-8存在的意义,节省空间,适用于英语字母比较多的情况。

gbk适合中文比较多的情况。Windows编码为gbk,目的均为节省空间



python编码

在python3中:所有的字符串都是unicode,其他以utf-8编码

s='中文'  #unicode
b=s.encode('utf8')  #unicode-->utf8  每个汉字三个字节
# b'\xe4\xb8\xad\xe6\x96\x87'  占用6个字节
# \xe4  16进制

c=s.encode('gbk')    #unicode-->gbk    每个汉字两个字节
b'\xd6\xd0\xce\xc4'   占用4个字节

# encode 编码: 看得懂---》看不懂
# decode 解码: 看不懂--->看的懂

#python查看系统编码
import sys
sys.getfilesystemencoding()
sys.getdefaultencoding()


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: