別のC++アプリケーションを呼び出したいJavaアプリケーションがあります。そのために は、私のJavaで私は私のargが "HelloWorldèçàœ" であるJavaからC++エンコーディングへのコマンドラインパラメータの受け渡し
Runtime.exec(args)
を呼び出します。
私のC++はこの引数を受け取り、 "HelloWorld ????"と見なします。私はメモリマップを見て、文字は3f 3f 3f 3fと表示されます。
(さらに、これは関連しているとは確信していませんが、私のC++をコンパイルするときに、「Character Set = Use Multi-Byte Character Set」(「Properties-> General」)を選択しました。
Q:このようなパラメータをJavaからC++に渡すにはどうすればよいですか?
ありがとうございました
シンプルなC++アプリケーション(Microsoft Visual C++ 2010でコンパイルされた)を呼び出し、この問題を再現できなかった単純なJavaアプリケーション(SunのJavaコンパイラを使用してWindowsでコンパイル)を作成しました。あなたが使用している正確なコードだけでなく、あなたの環境、コンパイラなどに関する情報を提供できるでしょうか?文字エンコーディングの問題は、非常に微妙な傾向があり、関連性がないと思われるものに依存します(たとえば、文字列 "HelloWorldèçàœ"をJavaソースファイルにリテラルとして入れた場合、Javaソースファイルのエンコーディングは犯人)。 – chess007