.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後:水曜どうでしょう