2

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 に、Unicode 6.1.0 (Python 3.3 のデフォルト) でカバーされていない NFD シーケンスはありますか?

バイトレベルでblaは、 とまったく同じではない可能性があることを認識していますfoo。これは、マークの結合が最初から「非標準」の順序であった可能性があるためですfoo(たとえば、 \ u0071 \u0323ではなく \u0071 \u0307 \u0323 ) \u0307 .破損/スクランブルされているように見えるのではなく、エンド ユーザーと同じようにbla 見える限り問題ないと思います。foo

4

0 に答える 0