gpt4 book ai didi

python - unicodedata.decomposition() 与 unicodedata.normalize(NFD/NFKD)?

转载 作者:行者123 更新时间:2023-11-28 21:37:38 28 4
gpt4 key购买 nike

根据py3 doc :

unicodedata.decomposition(chr)

Returns the character decomposition mapping assigned to the character chr as string. An empty string is returned in case no such mapping is defined.

这里不太明白字符分解映射是怎么定义的,unicodedata.decomposition()之间有什么关系/区别?和 unicodedata.normalize(NFD/NFKD)

请参阅以下示例:

$ python3
>>> import unicodedata
>>> unicodedata.decomposition('⑴')
'<compat> 0028 0031 0029' <-- why not just '0028 0031 0029'?
>>> unicodedata.normalize('NFKD', '⑴')
'(1)'
>>> unicodedata.decomposition('①')
'<circle> 0031' <-- why not just '0031'?
>>> unicodedata.normalize('NFKD', '①')
'1'
>>> unicodedata.decomposition('è')
'0065 0300' <-- like this?
>>> unicodedata.normalize('NFD', 'è') == '\u0065\u0300'
True
>>>

最佳答案

unicodedata.decomposition 返回单个代码点的分解类型和映射 in the format用于 Unicode Character Database .来自 UAX #44:

Decomposition_Type, Decomposition_Mapping: This field contains both values, with the type in angle brackets.

如果尖括号中没有类型,则代码点具有用于 NFC 和 NFD 的规范分解。如果尖括号中有类型,则代码点具有兼容性分解,除了规范分解之外,NFKC 和 NFKD 还使用它。

unicodedata.normalize 为整个字符串实现 Unicode 规范化算法。

关于python - unicodedata.decomposition() 与 unicodedata.normalize(NFD/NFKD)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49233193/

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