Python中 sys.setdefaultencoding("utf8") 的作用详解

Posted operaculus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中 sys.setdefaultencoding("utf8") 的作用详解相关的知识,希望对你有一定的参考价值。

在处理中文数据,经常加入下面的代码:

import sys
reload(sys)
sys.setdefaultencoding("utf8")

设置python默认字节流编/解码器按照utf8解码方式,把字节流编/解码为unicode;

 

 

具体来说,所起到的作用,可以用下面两个错误来解释:

  1. 在将字节流使用str()方法转换为str对象时,会调用默认的encode函数,如果没有上述系统的默认编码设置,则自动使用‘ascii‘ codecs进行编码,对于非ascii编码的数据,比如utf8字节流会产生错误解码提示:

UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters in position 0-5: ordinal not in range(128)

        2.在utf8编码文件中写入汉字字符, 比如 s = ‘中文‘时, 如果没有上述设置,运行程序会在初始s对象的值,报告错误编码提示:

UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe4 in position 0: ordinal not in range(128)

以上是关于Python中 sys.setdefaultencoding("utf8") 的作用详解的主要内容,如果未能解决你的问题,请参考以下文章

利用python爬取糗事百科的用户及段子

解决UnicodeDecodeError: 'ascii' codec can't decode byte 0xcf in position 7: ordinal not in

python中怎么换行?

如何python3中调用python2中的方法

python中怎么重复打印

python中去除数组中inf