擅长:python、mysql、java
<p>这个怎么样:</p>
<pre><code>import unicodedata
def strip_accents(s):
return ''.join(c for c in unicodedata.normalize('NFD', s)
if unicodedata.category(c) != 'Mn')
</code></pre>
<p>这也适用于希腊字母:</p>
<pre><code>>>> strip_accents(u"A \u00c0 \u0394 \u038E")
u'A A \u0394 \u03a5'
>>>
</code></pre>
<p><a href="http://www.unicode.org/reports/tr44/#GC_Values_Table" rel="noreferrer">character category</a>“Mn”代表<code>Nonspacing_Mark</code>,类似于MiniQuark答案中的unicodedata.combing(我没有想到unicodedata.combing,但它可能是更好的解决方案,因为它更明确)</p>
<p>请记住,这些操作可能会显著改变文本的含义。口音、口音等不是“装饰”</p>