当前位置:  开发笔记 > 编程语言 > 正文

如何使用Python反转Unicode分解?

如何解决《如何使用Python反转Unicode分解?》经验,为你挑选了2个好方法。



1> Rafał Dowgir..:

我想你正在寻找这个:

>>> import unicodedata    
>>> print unicodedata.normalize("NFC",u"c\u0327")
ç



2> bobince..:

不幸的是,我的文本中似乎实际上有(例如)\ u00B8(cedilla)而不是\ u0327(结合cedilla).

呃,讨厌!您仍然可以自动执行此操作,但该过程不会完全无损,因为它涉及兼容性分解(NFKD).

将U + 00B8标准化为NFKD,您将获得一个空格,然后是U + 0327.然后,您可以扫描字符串,查找任何空格跟随组合字符的情况,并删除空格.最后重新组合到NFC,将组合字符放到前一个字符上.

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)

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有