我正在寻找标准化 python 中的一些 unicode 文本。我想知道是否有一种简单的方法可以在 python 中获得组合 unicode 字符的“非规范化”形式?例如,如果我有序列u'o\\xaf'(即latin small letter o后跟combining macron),则得到 \xc5\x8d ( latin small letter o with macron)。很容易走另一条路:
o = unicodedata.lookup("LATIN SMALL LETTER O WITH MACRON")\no = unicodedata.normalize('NFD', o)\nRun Code Online (Sandbox Code Playgroud)\n
正如我所评论的,U+00AF 不是一个组合宏。但您可以使用 NFKD 变换将其转换为 U+0020 U+0304。
\n\n>>> unicodedata.normalize(\'NFKD\', u\'o\\u00af\')\nu\'o \\u0304\'\nRun Code Online (Sandbox Code Playgroud)\n\n然后你可以删除空格并通过 NFC 获取 \xc5\x8d。
\n\n(请注意,NFKD 在分解方面非常激进,某些语义可能会丢失 \xe2\x80\x94 任何“兼容”的内容都将被分离出来。例如
\n\n\'\xc2\xbd\'(U+008D) \xe2\x86\xa6 \'1\' \'\xe2\x81\x84\'(U+2044) \'2\';\'\xc2\xb2\'(U+00B2)\xe2\x86\xa6\'2\'\'\xe2\x91\xa0\'(U+2460)\xe2\x86\xa6\'1\'ETC。)
\n| 归档时间: |
|
| 查看次数: |
2188 次 |
| 最近记录: |