- 计算机只能处理数字,如果需要处理文本信息,那么就需要设计一种编码方法来使用数字表示文本。计算机在设计时采用8bit=1byte表示一个字节。那么1byte能表示的最大数字是255(2的8次方)。每一个数字就可以表示一个字符。于是神奇的ASCII编码方案诞生了。
- 由于早期计算机是在美国诞生的,于是ASCII编码只能表示英文字母,数字,符号。为了能够表示本国文字,各国相继有了自己的编码方案。如中国的GB2312。随着国际化程度的加深,多语言文本大量出现。但是因不同的语言有不同的编码方案,多语言文本中会出现冲突,导致乱码。于是又出现了一个神奇的编码方案——Unicode。
- Unicode编码方案将所有语言都统一到一套编码里,这样就方便了很多。Unicode通常使用两个字节表示一个字符,若遇到生僻字符就会使用四个字节。两个字节表示一个字符,同时常用字符在整个字符集中所占比例不是很大,多数字符都使用两个字节表示会很费内存的呀~ 于是,嘿嘿嘿(●ˇ∀ˇ●) 又一个神奇的东西诞生了,可变长的UTF-8编码。
- UTF-8编码是一种针对Unicode的可变长度字符编码,也是一种前缀码。它可以用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只需做少部分修改,即可继续使用。
- 有时候会看到这样一个选项以UTF-8无BOM格式编码那么这个神奇的BOM是什么呢它常被用来当作标示文件是以UTF-8、UTF-16或UTF-32编码的记号。python3的解释器会解决带不带BOM的问题~就不要我们担心了。在linux下最好还是使用无BOM的UTF-8编码格式。
- 关于BOM的知乎讨论可以看一下~BOM知乎讨论
python3 编码问题详解
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 原文地址 用java生成一个UTF-8文件(指定了utf-8格式了): 如果文件内容中没有中文内容,则生成的文件为...
- 04【计划】人生不在于做多少事 时间是无法管理的,我们能管理的只有自己,管理自己的事件和习惯! 德鲁克老先生说“时...
- oracle数据库正常连接,却无法新建查询,如下 Error: Cannot create file"C:\Pro...