我的口音有点问题。在
我做了一个python脚本,从一些输入(IMAP fetch)中得到单词“refeiç”,这个单词是葡萄牙语的,我需要把它转换成人类可读的。解码后,它应该看起来像“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
更新时间:
^{pr2}$此外,这些单词被插入到mysql数据库中,“不可读”字符的显示方式与终端中相同。 表格排序规则为utf8_general_ci
在工作中,我去除了所有的口音。在
以下是我使用的代码:
基于此答案: What is the best way to remove accents in a Python unicode string?
看起来您的终端窗口以单字节ISO-8859-1字符集(“拉丁语-1”)显示文本,但是python解释器认为终端正在讲UTF-8。我们可以从
u'refei\xe7\xe3o'
中看到Python具有正确的内部表示形式。显然,print命令随后将内部表示形式转换为UTF-8并将其发送到您的终端,当终端将UTF-8解释为ISO-8859-1时,就会产生胡言乱语。在解决方法是通过更改区域设置或确保终端为utf-8,使您的语言环境与终端正在执行的操作相匹配。在
相关问题 更多 >
编程相关推荐