【Python】Python3中UnicodeEncodeError问题

问题: 

在Ubuntu服务器中运行Python3脚本时,出现如下问题:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 157-164: ordinal not in range(128)

 原因:

系统中所采用的的编码方式不支持中文。我们可以采用如下代码检查系统的编码方式。

import sys

print(sys.stdout.encoding)

输出为

ANSI_X3.4-1968

 并不是UTF-8,因此脚本中出现中文会报错。

解决办法:

 方法1

设置系统的环境变量,在~./bashrc文件中添加如下两行:

export LANG="zh_CN.UTF-8"
export LANG="en_US.UTF-8"

再次检查可以发现系统的编码方式为UTF-8。之前的Python3脚本可以正常运行。

方法2

运行Python3脚本时,添加参数PYTHONIOENCODING=utf-8,即

PYTHONIOENCODING=utf-8 python3 test.py

之前的Python3脚本可以正常运行。

方法3

在Python3脚本中,添加如下代码:

import sys
import codecs
sys.stdout = codecs.getwriter("utf-8")(sys.stdout.detach())

之前的Python3脚本可以正常运行。

<span> </span> <p> <span style="font-size:16px;"> </span> </p> <p style="font-family:"color:#3D3D3D;font-size:16px;background-color:#FFFFFF;"> 您观看课程学习后<br /> 免费入群领取超全Python资料包+17本学习电子书 </p> <p style="font-family:"color:#3D3D3D;font-size:16px;background-color:#FFFFFF;"> <img src="https://img-bss.csdn.net/201909261006551340.jpg" alt="" /> </p>        <p> <br /> </p> <p> <span style="font-size:16px;"> </span><span style="font-size:16px;">当你需要一门语法简单功能强悍的编程语言时,Python一定是开发者的首选,经过Google多年以来不断的完善,使得Python成为了今天世界上最流行的编程语言之一,同时由于各个开源技术爱好者的不断贡献,使得Python拥有了完善生态体系,本课程将为读者揭开Python程序开发的神秘面纱。</span> </p> <p> <br /> </p> <p> <span></span><span style="font-size:16px;">       在本课程之详尽的为读者分析了Python的各个语法组成结构,通过大量的案例对Python语言使用特点的进行全面讲解,同时采用了大量的图形与直白的对话进行程序使用分析。</span><span style="font-size:16px;"></span> </p> <p> <br /> </p> <p> <span></span><span style="font-size:16px;">      本课程除了将Python语言的语法讲解透彻之外,还为读者讲解了PyPI分享、PyCharm开发工具、模块的创建与管理、并发编程、IO操作、网络编程、数据库编程、网络爬虫等内容。</span><span style="font-size:16px;"></span> </p> <p> <br /> </p> <p> <span style="font-size:16px;background-color:#E53333;color:#FFFFFF;">       课程开发工具与代码下载地址:</span><span style="font-size:16px;background-color:#E53333;color:#FFFFFF;">https://pan.baidu.com/s/1ag6uz_UiG_w6EOljWcxi8A</span> </p>
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页