如果字符串是Unicode 3.2.0 NFD,将它组合成Unicode 6.1.0 NFC(使用Python 3.3的unicodedata.normalize函数)是否安全?

时间:2013-02-04 08:21:46

标签: python unicode python-3.3 python-unicode unicode-normalization

在Python 3.3中考虑这段代码:

import unicodedata

foo = 'some unicode string that contains characters decomposable to Unicode 3.2.0 NFD'
bar = unicodedata.ucd_3_2_0.normalize('NFD', foo)
bla = unicodedata.normalize('NFC', bar)

最后一句话是否有效?我想更好的问题是:Unicode 3.2.0中是否有任何NFD序列未被Unicode 6.1.0(Python 3.3中的默认值)覆盖?

我意识到,在字节级别,bla可能与foo不完全相同,因为foo中的组合标记可能是“非标准”顺序开头(例如, \ u0307 \ u0323 ,而不是 \ u0323 \ u0307 。我认为只要bla 与最终用户的foo相同,而不是看起来已损坏/加扰。

0 个答案:

没有答案