Python3 报错’latin-1′ codec can’t encode character 解决方案

章志超

Python3 报错’latin-1′ codec can’t encode character 解决方案

2021年12月30日 服务器相关 0

今天在解析requests的响应内容时遇到了一个编码问题:

UnicodeEncodeError: ‘latin-1’ codec can’t encode characters in position 0-1: ordinal not in range(256)
查了很久调用requests()时的编码仍然没有效果,最后发现是因为系统的语言环境不支持UTF-8,,这是我出错时的语言环境:

$ locale
LANG=en_US
LC_CTYPE=”en_US”
LC_NUMERIC=”en_US”
LC_TIME=”en_US”
LC_COLLATE=”en_US”
LC_MONETARY=”en_US”
LC_MESSAGES=”en_US”
LC_PAPER=”en_US”
LC_NAME=”en_US”
LC_ADDRESS=”en_US”
LC_TELEPHONE=”en_US”
LC_MEASUREMENT=”en_US”
LC_IDENTIFICATION=”en_US”
LC_ALL=
执行export LANG=en_US.UTF-8改为下面这样就正常了

$ locale
LANG=en_US.UTF-8
LC_CTYPE=”en_US.UTF-8”
LC_NUMERIC=”en_US.UTF-8”
LC_TIME=”en_US.UTF-8”
LC_COLLATE=”en_US.UTF-8”
LC_MONETARY=”en_US.UTF-8”
LC_MESSAGES=”en_US.UTF-8”
LC_PAPER=”en_US.UTF-8”
LC_NAME=”en_US.UTF-8”
LC_ADDRESS=”en_US.UTF-8”
LC_TELEPHONE=”en_US.UTF-8”
LC_MEASUREMENT=”en_US.UTF-8”
LC_IDENTIFICATION=”en_US.UTF-8”
LC_ALL=

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注