代码里的中文
1. 代码第一行(如果有脚本标记则是第二行)可以按照PEP8形式指定本代码文件的编码类型。若不指定则按照ascii(py2.x)或utf-8(py3)
你需要了解的内容
1. 清楚知道包含中文的文件是用的什么编码
2. 清楚知道自己输出端(命令行?html?GUI?)用什么编码
3. 清楚知道编码的基本知识
你需要的python相关内容
以python2.7.x为例:
1. print/file.write等实质上只输出str对象,如果输出内容不是str对象,则使用str函数进行转换
2. str函数是个壳,实质是调用对象方法__str__
3. encode函数是将一个unicode类按照指定的编码(如果不指定则使用defaultencoding)转换为不带编码标记的str类
4. decode函数是将一个str类按照指定编码(如果不指定则使用defaultencoding)转换为使用utf-8编码的unicode类
5. 直接print一个容器(dict/list/tuple)的时候不会对其中的字符串进行编码,因此看到的非ascii字符集内容将会以\xAA或者\uAAAA之类的形式输出
Python3中,str行为与py2的unicode行为一致;bytes行为与py2的str行为一致。
1. 代码第一行(如果有脚本标记则是第二行)可以按照PEP8形式指定本代码文件的编码类型。若不指定则按照ascii(py2.x)或utf-8(py3)
你需要了解的内容
1. 清楚知道包含中文的文件是用的什么编码
2. 清楚知道自己输出端(命令行?html?GUI?)用什么编码
3. 清楚知道编码的基本知识
你需要的python相关内容
以python2.7.x为例:
1. print/file.write等实质上只输出str对象,如果输出内容不是str对象,则使用str函数进行转换
2. str函数是个壳,实质是调用对象方法__str__
3. encode函数是将一个unicode类按照指定的编码(如果不指定则使用defaultencoding)转换为不带编码标记的str类
4. decode函数是将一个str类按照指定编码(如果不指定则使用defaultencoding)转换为使用utf-8编码的unicode类
5. 直接print一个容器(dict/list/tuple)的时候不会对其中的字符串进行编码,因此看到的非ascii字符集内容将会以\xAA或者\uAAAA之类的形式输出
Python3中,str行为与py2的unicode行为一致;bytes行为与py2的str行为一致。
来自QQ