python not in range_Python3中遇到UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position ...

在Python3环境下遇到编码问题,系统默认stdout编码为'ANSI_X3.4-1968',导致无法正常打印UTF-8字符。解决方案包括设置环境变量LANG为'en_US.UTF-8'或在运行时指定PYTHONIOENCODING=utf-8。通过修改环境变量或运行参数,成功解决了Python3编码问题。
摘要由CSDN通过智能技术生成

如果是python 2.x的话需要在文件中加上

# coding: utf-8

reload(sys)

sys.setdefaultencoding("utf8")

但是Python3应当默认就使用utf8编码,即使设置了这些也仍然不能正常打印。

最终查看了一下系统环境编码,发现问题(我的是ARM架构下的Ubuntu)

>>> import sys

>>> sys.stdout.encoding

'ANSI_X3.4-1968'

解决办法

1、设置环境变量LANG

在linux或Mac上设置环境变量的方式一样,在/etc/profile增加一行

export LANG=”en_US.UTF-8″

然后source /etc/profile

我当前系统默认已经是utf-8,采用第二种解决

2、使用PYTHONIOENCODING

在运行python命令前添加参数 PYTHONIOENCODING=utf-8 python3 api.py

该参数的解释可查看

原创文章,作者:Tina,如若转载,请注明出处:https://python.01314.cn/201907548.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值