12月 14, 2010
kamata

日本語文字列照合順序

日本語文字列照合順序というのをご存知だろうか?
お客様より、索引をこの順序で並べて欲しいと依頼があった。
ネットで調べると、JIS規格のJIS X 4061で定められている。
これを行うオープンソースがないかといろいろ探すが、あまり無く、
なんとか使えそうなのを見つけたのがperl のShiftJIS-Collate-1.03であった。

サンプルも添付してあり、これをお客様に見せ了解をいただいた。
漢字部 , 読み部 のタブ区切りテキストで、読み > 漢字で並び替える。

で本番データを待ったのだが、いただいたデータは漢字部、読み部
に英文が混在していた。最初に実行すると、処理結果の並びがおかしくなった。
原因が分からず、いろいろと時間を費やしたが、
結局、英文が混在していると、並びが保証されないようだ。

はて困ったと思案した挙げ句、何をしたかというと、英文を全角文字に置換したのだ。
処理する文字列を全て全角にした。これで実行すると、ソートが奇麗にできた。

ソート後、全角を半角に戻して納品したのであった。

(written by Kamata)

Leave a comment