擅长:python、mysql、java
<blockquote>
<p>Unfortunately it seems I actually have (for example) \u00B8 (cedilla) instead of \u0327 (combining cedilla) in my text.</p>
</blockquote>
<p>呃,真恶心!您仍然可以自动执行此操作,尽管该过程不会完全无损,因为它涉及兼容性分解(NFKD)。在</p>
<p>将U+00B8规范化为NFKD,您将得到一个空格,后跟U+0327。然后,您可以扫描字符串,查找空格的大小写,然后再组合字符,然后删除空格。最后重新组合到NFC,将组合字符放在前一个字符上。在</p>
<pre><code>s= unicodedata.normalize('NFKD', s)
s= ''.join(c for i, c in enumerate(s) if c!=' ' or unicodedata.combining(s[i+1])==0)
s= unicodedata.normalize('NFC', s)
</code></pre>