在Python中用unicode字符串替换非ascii字符

时间:2010-09-13 21:57:01

标签: python ascii

如何在Python中用unicode字符串替换非ascii字符?

这是给定输入的输出:

música - > MUSICA

cartón - >纸箱

caño - >卡诺

Myaybe有一个词典,其中'á'是一个键,'a'是一个值?

2 个答案:

答案 0 :(得分:21)

如果您只想将重音字符降级为非重音等效字符:

>>> import unicodedata
>>> unicodedata.normalize('NFKD', u"m\u00fasica").encode('ascii', 'ignore')
'musica'

答案 1 :(得分:7)

现在,只是为了补充答案: 可能是您的数据不是以unicode形式出现的情况(即您正在使用其他编码读取文件,并且您不能在字符串前加上“u”)。这是一个可能也有效的片段(主要是那些阅读英文文件的人)。

import unicodedata
unicodedata.normalize('NFKD',unicode(someString,"ISO-8859-1")).encode("ascii","ignore")