我正在调试Python 3脚本,每次尝试打印变量时,它都会给我以下错误:
ipdb> inputs
*** UnicodeEncodeError: 'ascii' codec can't encode character 'u22f1' in
position 314: ordinal not in range(12)
我尝试使用 sys.setdefaultencoding()
将默认编码设置为 UTF-8 并在脚本顶部添加# -*- coding: utf-8 -*-
,但两者都不起作用。
TL;DR: export LANG=C.UTF-8
@mike解释说,发生这种情况是因为Python从启动它的环境中选择编码设置。如果找不到正确的编码,它会回退到默认值"ascii"。
我的解决方案是按照本答案中所述更改locale
。因此,我试图设置export LANG=en_US.UTF-8
,令我惊讶的是,它没有奏效。但是,当我尝试另一个语言环境时, export LANG=C.UTF-8
另一个答案所建议的那样,它起作用了。