Mac OSX のファイル名の形式のUTF-8(NFD)を処理する

.NET Framework でMac OSXのファイル名で使われている UTF-8 Nomalization Form D (NFD)を取り込んだ場合、System.String.Nomalize メソッドで.NET Frameworkで通常使われている形式に戻すことができます。

.NET Framework はデフォルトがNFCだから、これくらい、Encodingクラスでやっておいてほしいって気もしますが…

 string line = sreader.ReadLine();
 Console.WriteLine("Normalize前:" + line);
 Console.WriteLine("Normalize後:" + line.Normalize());

実行結果@WindowsXP

Normalize前:水曜と?うて?しょう
Normalize後:水曜どうでしょう