python中coding:utf-8和setdefaultencoding区别和“UnicodeDecodeError: 'ascii' codec can't decode byte 的问题解决

xiaoxiao2021-02-28  44

两种方式的区别

一、 # coding:utf-8 定义源代码的编码. 如果没有定义, 改源码中是不可以包含中文字符串的. 官方链接:https://www.python.org/dev/peps/pep-0263/

二、sys.getdefaultencoding() 是设置默认的string的编码格式。

另外: 在python2.x的字符编码问题时常会遇到“UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 0-5: ordinal not in range(128)”的编码错误。 解决方法是这样:

import sys reload(sys) sys.setdefaultencoding('utf-8')

但是这样处理,会带来一些副作用问题: http://blog.ernest.me/post/python-setdefaultencoding-unicode-bytes

本文参考: https://www.cnblogs.com/technologylife/p/6071787.html https://blog.csdn.net/mindmb/article/details/7898528 python的unicode编码API文档,英文好的同学可以看一下,加深理解: https://docs.python.org/3/howto/unicode.html

转载请注明原文地址: https://www.6miu.com/read-2624074.html

最新回复(0)