【发布时间】:2016-03-11 21:34:50
【问题描述】:
我有以下错误:
UnicodeEncodeError: 'ascii' codec can't encode character '\xd7' in position 31: ordinal not in range(128)
从此代码:
test_string = """
Antelope Canyon, Arizona [1600×1068] </a>  <span class="domain">(<a
"""
print(test_string)
sys.getdefaultencoding 的输出:
In [6]: sys.getdefaultencoding()
Out[10]: 'utf-8'
我正在使用带有油炸面包块的 Chromebook - 如果这会有所不同(我觉得它可能会)。
我不确定是否有某种方式可以“强制”输出这样的字符串,或者只是忽略任何有问题的字符。
终端或控制台 o 重定向无法处理 UTF-8;你想在什么环境下打印。
我正在尝试在 Spacemacs 中使用 iPython 运行它
In [22]: sys.stdout.encoding
Out[27]: 'ANSI_X3.4-1968'
在shell中,命令locale输出什么?
在我正在运行的 shell(Spacemacs 中的 iPython)中,该命令未定义,在使用 ctrl alt t 启动的默认 shell 上,输出为
$ locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
【问题讨论】:
-
啊,
×是 U+00D7 字符。 -
这里重要的是
sys.stdout.encoding,它是从父进程(通常是shell)设置的。 -
在shell中,命令
locale输出什么? -
@KevinGuan:完全正确。但是 OP 使用的是 Chromebook..
-
如果您使用的是 Emacs 环境,请使用
(setenv "LC_CTYPE" "UTF-8")设置语言环境。
标签: python python-3.x utf-8 ascii non-ascii-characters