python3 中的reload(sys)和sys.setdefaultencoding('utf-8')

Posted Nigo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python3 中的reload(sys)和sys.setdefaultencoding('utf-8')相关的知识,希望对你有一定的参考价值。

通常我们为了防止出现乱码会进行一下操作
import sys
reload(sys)
sys.setdefaultencoding(‘utf-8’)
但这是python2的写法,但是在python3中这个需要已经不存在了,这么做也不会什么实际意义。
如果你要这么做就会出现一下错误

sys.setdefaultencoding(‘utf-8‘)
AttributeError: module ‘sys‘ has no attribute ‘setdefaultencoding‘
在Python2.x中由于str和byte之间没有明显区别,经常要依赖于defaultencoding来做转换。
在python3中有了明确的str和byte类型区别,从一种类型转换成另一种类型要显式指定encoding。

因此,以上语法可以改为

import importlib,sys
importlib.reload(sys)

以上是关于python3 中的reload(sys)和sys.setdefaultencoding('utf-8')的主要内容,如果未能解决你的问题,请参考以下文章

python3与python不同-reload()

reload(sys)后print失效问题解决

为什么在sys.setdefaultencoding之前要写reload(sys)

Python报错“AttributeError: module 'sys' has no attribute 'setdefaultencoding'问题”

python reload(sys) 后无法输出

Python 解决 :NameError: name 'reload' is not defined 问题