ひょんな拍子に、JavaScriptで「ガ」のような濁点付きの仮名を「カ」に直さないといけなくなったのですが、テーブルなしで対応できることが判明しました。 NFCとNFD 「ガ」と「ガ」、肉眼で見ればほぼ違いがないですが、データとしては全く別物になっています。 ガ…文字コードは\u30ac、濁点まで含めて1つの文字 ガ…文字コードは\u30ab\u3099、「カ+結合文字の濁点1」 このように、Unicodeでは、「複数のコードポイントを結合した文字」と「結合した状態で1つのコードポイントに登録された文字」の両方が存在していることがあります。視覚的にも意味的にも全く同じものが別なコードで表されていると(正準等価)、検索の際に厄介です。 そのようなときに役立つルールとして、Unicodeは正規化の手順も定義しています。これは4つありますが、まずは2つを取り上げます。 NFD…正準等価な文