在 ipdb 中打印变量时出错:UnicodeEncode错误:'ascii'编解码器无法在位置 314 中编码字符"\u22f1":序号不在范围内(12)



我正在调试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另一个答案所建议的那样,它起作用了。

相关内容

  • 没有找到相关文章

最新更新