编码转换
Posted leiyiming
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编码转换相关的知识,希望对你有一定的参考价值。
python2
- python2默认编码ascIII
- 字符串编码默认ASCII编码
- py2有Unicode类型,encode后才是字符型
- 所以要表示中文,要在开头声明,以此种编码解码到内存,而且内存上的也是此种编码,这样的话在Windows上就可能是乱码的了 eg: #! -- coding: utf-8 -- or #!encoding:utf-8
-
- UTF-8 --> decode 解码 --> Unicode
- Unicode --> encode 编码 --> GBK / UTF-8 .. bytes
- python3默认编码utf-8
- 字符串编码默认Unicode
- py3没有Unicode类型,只有str类型
- 解释器找到代码文件,把代码字符串按文件头定义的编码加载到内存,自动转成unicode
- 把代码字符串按照语法规则进行解释,
- 所有的变量字符都会以unicode编码声明
- 把unicode编码后,字符串就变成了bytes格式,必须得是unicode编码,才显示字符
- 内存为Unicode,但存储到硬盘,却要转换成utf-8,是为了存储传输
- 所有系统都支持Unicode
- chr(97) >>>"a" #转换ASCII码
**python3 **
为什么在py3里,把unicode编码后,字符串就变成了bytes格式? 你直接给我直接打印成gbk的字符展示不好么?我想其实py3的设计真是煞费苦心,就是想通过这样的方式明确的告诉你,想在py3里看字符,必须得是unicode编码,其它编码一律按bytes格式展示。
注意:
以上是关于编码转换的主要内容,如果未能解决你的问题,请参考以下文章