简体   繁体   English

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

[英]Error when printing a variable in ipdb: UnicodeEncodeError: 'ascii' codec can't encode character '\u22f1' in position 314: ordinal not in range(12)

I was debugging a Python 3 script and every time I tried to print a variable, it gave me the following error: 我正在调试Python 3脚本,每次尝试打印变量时,都会出现以下错误:

ipdb> inputs
*** UnicodeEncodeError: 'ascii' codec can't encode character '\u22f1' in
  position 314: ordinal not in range(12)

I tried to set the default encoding to UTF-8 using sys.setdefaultencoding() and adding # -*- coding: utf-8 -*- at the top of the script, but both didn't work. 我尝试使用sys.setdefaultencoding()将默认编码设置为UTF-8,并在脚本顶部添加# -*- coding: utf-8 -*- ,但是两者均无效。

TL;DR: export LANG=C.UTF-8 TL; DR: export LANG=C.UTF-8


@mike explains that it happens because Python picks the encoding setting from the environment it's been initiated from. @mike解释说,发生这种情况是因为Python从其启动环境中选择了编码设置。 If it can't find a proper encoding, it falls back to its default, 'ascii'. 如果找不到正确的编码,则会恢复为默认值“ ascii”。

My solution was to change the locale as described in this answer . 我的解决方案是按照此答案中的说明更改locale Thus, I tried to set export LANG=en_US.UTF-8 and, to my surprise, it didn't work. 因此,我尝试设置export LANG=en_US.UTF-8 ,令我惊讶的是,它没有用。 However, when I tried another locale, export LANG=C.UTF-8 as suggested by another answer , it worked. 但是,当我尝试其他语言环境时,按照另一个答案的建议export LANG=C.UTF-8 ,它可以工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Python:UnicodeEncodeError:'ascii' 编解码器无法在位置 0 中对字符 '\Ο' 进行编码:序号不在范围内 (128) - Python: UnicodeEncodeError: 'ascii' codec can't encode character '\u039f' in position 0: ordinal not in range(128) PyTorch UnicodeEncodeError:“拉丁-1”编解码器无法编码字符“ \\ u22f1” - PyTorch UnicodeEncodeError: 'latin-1' codec can't encode character '\u22f1' UnicodeEncodeError:'ascii'编解码器无法对位置34中的字符u'\\ u05a0'进行编码:序数不在范围内(128) - UnicodeEncodeError: 'ascii' codec can't encode character u'\u05a0' in position 34: ordinal not in range(128) UnicodeEncodeError:'ascii'编解码器无法对位置47中的字符u'\\ u2019'进行编码:序数不在范围内(128) - UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 47: ordinal not in range(128) UnicodeEncodeError: 'ascii' codec can't encode character u'\ц' in position 32: ordinal not in range(128) - UnicodeEncodeError: 'ascii' codec can't encode character u'\u0446' in position 32: ordinal not in range(128) UnicodeEncodeError:'ascii'编解码器无法在位置30339编码字符u'\\ u2019':序数不在范围内(128) - UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 30339: ordinal not in range(128) UnicodeEncodeError: 'ascii' 编解码器无法对位置 0 中的字符 u'\ا' 进行编码:序号不在范围内 (128) - UnicodeEncodeError: 'ascii' codec can't encode character u'\u0627' in position 0: ordinal not in range(128) UnicodeEncodeError: 'ascii' 编解码器无法对位置 15564 中的字符 u'\‘' 进行编码:序号不在范围内 (128) - UnicodeEncodeError: 'ascii' codec can't encode character u'\u2018' in position 15564: ordinal not in range(128) UnicodeEncodeError:'ascii'编解码器无法对位置448中的字符u'\\ u2013'进行编码:序数不在范围内(128) - UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 448: ordinal not in range(128) UnicodeEncodeError:'ascii'编解码器无法在位置32编码字符u'\\ u2019':序数不在范围内(128) - UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 32: ordinal not in range(128)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM