【发布时间】:2011-08-06 17:06:41
【问题描述】:
我在口音方面遇到了一些问题。
我做了一个 python 脚本,它从一些输入(IMAP 提取)中获取了“refeição”这个词,这个词是葡萄牙语,我需要将它转换为人类可读的。解码后,它应该看起来像“refeição”,但我没有得到这个结果......
>>> print a
refeição
>>> ENCODING = locale.getpreferredencoding()
>>> print ENCODING
UTF-8
>>> print a.encode(ENCODING)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 5: ordinal not in range(128)
>>> a.decode('utf-8')
u'refei\xe7\xe3o'
>>> print a.decode('utf-8')
refeição
更新:
root@ticuna:/etc/scripts# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
此外,这些单词被插入到 mysql 数据库中,并且“不可读”字符的显示方式与终端中的显示方式相同。 表排序规则为 utf8_general_ci
【问题讨论】:
标签: python diacritics