お勧め書籍: Unicode による JIS X 0213 実装入門 (著者 MS 田丸健三郎)
上の河端さんのBlogにある通り、「UnicodeによるJIX X0213 実践入門」にはUnicode正規化に関する記述がありません。ただ、Unicodeの思想といったものや、現実的には検索処理等の中おけるパターンマッチングにおいてもUnicode正規化の考え方は大変重要なので、少々知っておいた方がいいレベルでの知識が得られるように情報先をリンクしフォローアップしておきます。
まずは一般的な知識としてUnicode正規化についてはWiki pediaの記事がよくまとまっています。
次に日本語処理におけるUnicode正規化の問題点については、Internet Watchの連載が大変参考になります。
- “情報化時代”に追いつけるか? 審議が進む「新常用漢字表(仮)」:第2部 新常用漢字表と文字コード規格第5回 なぜUnicode正規化は生まれたか
- “情報化時代”に追いつけるか? 審議が進む「新常用漢字表(仮)」:第2部 新常用漢字表と文字コード規格第6回 重複符号化を排除するUnicode正規化と互換漢字
.NET FrameworkでのUnicode 正規化に関係するリンク
- 正規化(http://msdn.microsoft.com/ja-jp/library/ms230119(VS.80).aspx)
- 正規化と並べ替え(http://msdn.microsoft.com/ja-jp/library/ms230117(VS.80).aspx)
- String.Normalize メソッド (NormalizationForm) (System)(http://msdn.microsoft.com/ja-jp/library/ebza6ck1(VS.80).aspx)
- NormalizationForm 列挙体 (System.Text)(http://msdn.microsoft.com/ja-jp/library/system.text.normalizationform(VS.80).aspx)
Win32 API
- NormalizeString(http://msdn.microsoft.com/en-us/library/ms776395.aspx)
- NORM_FORM(http://msdn.microsoft.com/en-us/library/ms776396(VS.85).aspx)
*nix
- IBM Globalization – ICU(ICUのライブラリを使うのがもっとも確かで簡単そうです。)
Java
PHP
Python
- 4.9 unicodedata — Unicode Database(ライブラリ)
- PyICU @ Open Source Applications Foundation(ICUのC++ライブラリをCPythonから使えるようにするもの。開発中らしい)
Perl
Rubyは調べたけどよくわかりませんw
コメント