utf-8和setdefaultencoding有什么区别
发布网友
发布时间:2022-04-24 03:09
我来回答
共2个回答
热心网友
时间:2022-04-07 13:41
# coding:utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
1.如果你在Python中进行编码和解码的时候,不指定编码方式,那么python就会使用defaultencoding。
而python2.x的的defaultencoding是ascii,
这也就是大多数python编码报错:“UnicodeDecodeError: 'ascii' codec can't decode byte ......”的原因。
2.关于头部的# coding:utf-8,有以下几个作用
2.1如果代码中有中文注释,就需要此声明
2.2比较高级的编辑器(比如我的emacs),会根据头部声明,将此作为代码文件的格式。
2.3程序会通过头部声明,解码初始化 u"人生苦短",这样的unicode对象,(所以头部声明和代码的存储格式要一致)
python2.7以后不用setdefaultencoding了,这两个是没有区别的
这两个作用不一样,
1. # coding:utf-8
作用是定义源代码的编码. 如果没有定义, 此源码中是不可以包含中文字符串的.
PEP 0263 -- Defining Python Source Code Encodings
2. sys.getdefaultencoding()
是设置默认的string的编码格式
热心网友
时间:2022-04-07 14:59
1.如果你在python中进行编码和解码的时候,不指定编码方式,那么python就会使用defaultencoding。
而python2.x的的defaultencoding是ascii,这也就是大多数python编码报错:“UnicodeDecodeError: 'ascii' codec can't decode byte ......”的原因。
2.关于头部的# coding:utf-8,有以下几个作用
2.1如果代码中有中文注释,就需要此声明
2.2比较高级的编辑器(比如我的emacs),会根据头部声明,将此作为代码文件的格式。
2.3程序会通过头部声明,解码初始化 u"人生苦短",这样的unicode对象,(所以头部声明和代码的存储格式要一致)