运行报错:
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 129-132: ordinal not in range(128)
- 1、Python 3 与 Python 2 有很大的区别,其中Python 3 系统默认使用的就是utf-8编码。
- 2、所以,对于使用的是Python 3 的情况,就不需要sys.setdefaultencoding(“utf-8”)这段代码。
- 3、最重要的是,Python 3 的 sys 库里面已经没有 setdefaultencoding() 函数了。
1、查看python3环境默认编码
Python 3.6.8 (default, Apr 19 2021, 17:20:37)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
2、查看操作系统变更环境
[root@hadoop /data/jarvisyq/DNSPod_inter]# locale
LANG=en
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C
直接在终端中运行如下命令:
export PYTHONIOENCODING=UTF-8
然后再运行python 执行 py 文件就可以