gpt4 book ai didi

Python "denormalize"unicode 组合字符

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:44 25 4
gpt4 key购买 nike

我正在寻找标准化 python 中的一些 unicode 文本。我想知道是否有一种简单的方法可以在 python 中获取组合 unicode 字符的“非规范化”形式?例如如果我有序列 u'o\xaf'(即 latin small letter o 后跟 combining macron),得到 ō (带长音符的拉丁文小写字母 o)。走另一条路很容易:

o = unicodedata.lookup("LATIN SMALL LETTER O WITH MACRON")
o = unicodedata.normalize('NFD', o)

最佳答案

正如我所评论的,U+00AF 不是组合长音符。但是您可以使用 NFKD 变换将其转换为 U+0020 U+0304。

>>> unicodedata.normalize('NFKD', u'o\u00af')
u'o \u0304'

然后你可以删除空格并使用 NFC 获取 ō。


(请注意,NFKD 在分解方面非常激进,可能会丢失一些语义——任何“兼容”的东西都会被分离出来。例如

  • '½' (U+008D) ↦ '1' '⁄' (U+2044) '2' ;
  • '²' (U+00B2) ↦ '2'
  • '①' (U+2460) ↦ '1'

等等)

关于Python "denormalize"unicode 组合字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3126929/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com