大文字と小文字を区別しない UTF-8 文字列比較のさまざまな戦略を評価しようとしています。
私は Unicode コンソーシアムからいくつかの資料を読み、ICU で実験を行い、さまざまな実装品質の代替案を考え出そうとしました。
Simple Case Mapping と Full Case Mapping でテキストが異なるのを何度も見たので、その違いを完全に理解したいと思いました。
私が読んだように、Simple Case Mapping は「コンテキストフリー」です。つまり、ペイロードがどの言語であるかを知る必要はありません。これは、トルコ語の「I/ı/İ/i」の大失敗により、おおよその結果を示します。
一方、フル ケース マッピングは、マッピングを実行できるようにペイロードの言語を認識する必要があります。その追加情報により、トルコ語の文字列としての「Kim」が大文字の「KİM」になるが、英語の文字列としての「Kim」が大文字の「KIM」になる場合をカバーする特別な手段を講じることができます。
私はそれを正しく理解していますか?
言語ごとに異なる「多面的な」コードポイントの例は他にありますか?
ありがとう!
更新:単純なケース マッピングを言語に依存しないと言及しているソースの 1 つは、ICU のドキュメントです。Unicode の真実と解釈しましたが、もしかしたら単なる実装のステートメントではないでしょうか?