【发布时间】:2014-02-25 22:18:54
【问题描述】:
我需要将 unicode 文件转换为 ascii。如果 ascii 中不存在字母,则应将其转换为最接近的 ascii 表示形式。
我正在使用 Unidecode 工具 (https://pypi.python.org/pypi/Unidecode)。当我在 CL 上的 Python 解释器中使用它时,它工作正常(因此,通过调用 python 然后导入库,然后像这样打印解码后的单词:print unidecode(u'äèß'))
不幸的是,当我尝试直接在命令行上使用此工具时(因此,通过执行python -c "from unidecode import *; print unidecode(u'äèß')" 之类的操作,它只会打印乱码(准确地说是A$?A"A,即使它应该已经打印(并且确实在解释器中)aess)。这很烦人,我不知道如何解决这个问题。我认为这可能是由于我的终端编码错误,没有正确设置为 utf-8 或其他东西。但是, locale 在我的终端中打印出以下输出:
LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL="de_DE.UTF-8"
或者,可能是由于 Python 在命令行上的 StdIn 编码存在问题?它在 python 解释器中给了我正确的输出,但是在调用 python -c 时没有。
你们有什么想法吗?
【问题讨论】:
标签: python encoding command-line utf-8