これは、 Process.StartInfo.Argumentsのエンコーディングで発生しているのと同じ問題であると想定しました。しかし、そうではないようです(ただし、間違っている場合は訂正してください)。
アプリケーションから外部プロセスを開始し、引数としてパスを渡します。ここで、パスに特殊文字が含まれている場合(私の場合はドイツ語のウムラウト)。外部アプリケーションは別の文字を取得するため、失敗します。指定された文字列は、VS2010デバッガーで正しく表示されます。
検証するために次のようなConsoleApplicationを作成し、外部アプリケーションの代わりに呼び出します。
static void Main(string[] args)
{
Console.WriteLine(args[0]);
}
出力は私のメインアプリケーションに表示されますが、ここでも特殊文字が間違っています(Üの代わりにšを取得します)。