第二:不要应用中文,注释什么的都用英文;幻想很饱满,实际很难,只是导致大年夜量的拼音;
法度榜样员都自视高傲,认为本身是创造者,经常小看不太懂技巧的产品或者QA。可悲的是,法度榜样员之间也互相小看,法度榜样员的小看链传播甚广,作为一个Python法度榜样员,天然最关怀的是下面这幅图啦

是以,本文的目标是解释清跋扈 python2.7 中unicode、str的编解码关系,力争在小看链中进步一步。
留意:本文实验重要基于win7,Python2.7;以及Linux ,Python2.7。除非特别解释,所有的敕令都是在终端中交互式输入;如不雅没有强调平台,那么就是window上的结不雅。下面是一些默认的情况信息(其重要性后文会介绍)
windows
- >>> import sys,locale
- >>> sys.getdefaultencoding()
- 'ascii'
- >>> locale.getdefaultlocale()
- ('zh_CN', 'cp936')
- >>> sys.stdin.encoding
- 'cp936'
- >>> sys.stdout.encoding
- 'cp936'
- >>> sys.getfilesystemencoding()
- 'mbcs'
留意,膳绫擎CP936是GBK的别号,在https://docs.python.org/2/library/codecs.html#standard-encodings 可以查看。
大年夜字符编码说起
- >>> us = u'严'
- >>> ss = us.encode('utf-8')
- >>> ss
- '\xe4\xb8\xa5'
- >>> type(ss)
- <type 'str'>
- >>> ss.decode('utf-8') == us
- True
起首来说一说gbk gb2312 unicode utf-8这些术语,这些术语与说话无关。
计算机的世界只有0和1,是以任何字符(也就是实际的文字符号)也是由01串构成。计算机为了运算便利,都是8个bit构成一个字节(Byte),字符表达的最小单位就是字节,即一个字符占用一个或者多个字节。字符编码(character encoding)就是字集码,编码就是将字符集中的字符映射为一个独一二进制的过程。
Linux
计算机发源竽暌冠美国,应用的是英文字母(字符),所有26个字母的大年夜小写加上数字0到10,加上符号和控制字符,总数也不多,用一个字节(8个bit)就能表示所有的字符,这就是ANSI的“Ascii”编码(American Standard Code for Information Interchange,美国信息交换标准代码)。比如,小写字母‘a’的ascii 码是01100001,换算成十进制就是97,十六进制就是0x61。计算机中,一般都是用十六进制来描述字符编码。
然则当计算机传到中国的时刻,ASCII编码就行不通了,汉字这么多,一个字节肯定表示不下啊,于是有了GB 2312(中国国度标准简体中文字符集)。GB2312应用两个字节来对一个字符进行编码,个中前面的一个字节(称之为高字节)大年夜0xA1用到 0xF7,后面一个字节(低字节)大年夜0xA1到0xFE,GB2312能表示几千个汉字,并且与asill吗也是兼容的。
但后来发明,GB2312照样不敷用,于是进行扩大,产生了GBK(即汉字内率攀扩大规范), GBK同Gb2312一样,两个字节表示一个字符,但差别在于,放宽了对低字节的请求,是以能表示典范围扩大年夜到了20000多。后来,为了容纳少数名族,以及其他汉字国度的文字,出现了GB13080。GB13080是兼容GBK与GB2312的,能容纳更多的字符,与GBK与GB2312不合的是,GB18030采取单字节、双字节和四字节三种方法对字符编码
是以,就我们关怀的汉字而言,三种编码方法的表示范围是:
GB18030 》 GBK 》 GB2312
即GBK是GB2312的超集,GB1803又是GBK的超集。后面也会看到,一个汉字可以用GBK表示,但不必定能被GB2312所表示
当然,世界上还有更多的说话与文字,每种文字都有本身的一套编码规矩,如许一旦跨国就会出锨氚搽,亟待一个全球同一的解决办法。这个时刻ISO(国际标准化组织)出马了,创造了”Universal Multiple-Octet Coded Character Set”,简称 UCS, 俗称 “unicode”。目标很简单:废了所有的地区性编码筹划,从新搞一个包含了地球上所有文化、所有字母和符号 的编码!
推荐阅读
能拍照,还能视频通话?coolpad Dynobot儿童智能手表让你惊艳
市面上的绝大部分儿童手表都不能拍照,最大卖点的只是语音通话功能。Dynobot是市面上仅有的配备两个摄像头的儿童手表,支持480P视频通话。表盘30万像素满足孩子自拍需求,顶部200万像素摄像头可以拍孩子看到的任何画>>>详细阅读
本文标题:不想再被鄙视?那就看进来! 一文搞懂Python 2字符编码
地址:http://www.17bianji.com/lsqh/39888.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示