" ASCII肥胖型" Python中一些Unicode字符的近似值

时间:2018-04-04 13:38:57

标签: python text unicode ascii

由于我无法控制的原因,我必须将带有一些Unicode字符的(英文)文本转换为ASCII(以便在其他地方进行进一步处理)。例如:

Deutsche Börse 

当我这样做时:

u'Deutsche Börse'.encode(encoding='ascii', errors='replace')

我得到了

b'Deutsche B?rse'

这不是我需要的。理想情况下,我想获得Deutsche Borse

我当然意识到绝大多数Unicode字符是不可能的。但对于许多重要的名字,比如说Quebec,这原则上是可能的。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

使用unicodedata模块。

<强>实施例

import unicodedata
s = u'Deutsche Börse'
print unicodedata.normalize('NFKD', s).encode('ascii', 'ignore')

<强>输出:

Deutsche Borse

答案 1 :(得分:1)

以下是您的需求: 要转换为ASCII,您可能需要尝试unicodedata

import unicodedata

data= u'Deutsche Börse'

print (unicodedata.normalize('NFKD', data).encode('ascii','ignore'))

输出

 b'Deutsche Borse'