

タイトルの通りですが、  
○C#にてprocess.startのargumentsへの日本語を含む文字列の指定方法  
および  
○コマンドプロンプトにてアプリケーション実行の引数に日本語を含む文字列の指定方法  
が分かりません。  
現状、実行したアプリケーションが受け取るのは文字化けした文字列になっています。  
実行したいのはTeighaFileConverterです。  
<https://www.opendesign.com/guestfiles/teigha_file_converter>  
このアプリケーションは引数として、入力ディレクトリ、出力ディレクトリ、ファイル名等をとりますので、それらに日本語を含む文字列を指定したい（そもそも英数字のみで構成すればよいのですが）というのが今回の主旨になります。  
何かいい方法があれば、ご教示頂けると幸いです。  
以上、よろしくお願いいたします。


CC BY-SA 3.0
2017-06-22T09:12:01.670
35810
2017-06-22T09:59:40.400
2017-06-22T09:59:40.400
4236
23955
question
c# windows コマンドプロンプト
c#及びコマンドプロンプトでの他のアプリケーション実行における、日本語を含む引数の指定方法


ありません。Windowsでは入力された文字列を一旦Unicodeに変換して保持します。その上でアプリケーションがUnicodeで読み出した場合はそのまま、ANSIで読み出した場合はUnicodeからANSIに変換してから、それぞれ返します。  
C# はUnicodeで動作している為、この辺りは正しくUnicodeが渡されます。

推測ですが、件アプリケーションはコマンドライン引数をANSIで読み出したものの、その後の扱いが不適切な為に文字化けしているのでしょう。

仮に呼び出し側が何らかの異なる値を渡すことができても今度は件のアプリケーションがファイルオープンに失敗します。  
結局、問題のアプリケーションを修正するほかありません。（もちろん何らかの設定があればそれを正しく設定する、でも構いませんが）


CC BY-SA 3.0
2017-06-22T09:59:08.030
35812
2017-06-22T09:59:08.030
4236
35810
answer