在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
相同,而不是看起来已损坏/加扰。