将命令行参数从Java传递到c++编码

Passing commandline parameters from Java to C++ encoding

本文关键字:c++ 编码 Java 命令行 参数      更新时间:2023-10-16

我有一个Java应用程序,我希望在其中调用另一个c++应用程序。为此,我在Java中调用

Runtime.exec(args)

我的参数是"HelloWorldèçàœ"。

当我的c++接收到这个参数时,它将其视为"HelloWorld????"。我查看了内存映射,字符èçàœ显示为3f 3f 3f。

(此外,我不确定这是否相关,但当我编译我的c++时,我选择了选项:"字符集=使用多字节字符集"(在属性->一般)。)

问:如何将这样的参数从Java传递到c++ ?

谢谢

这可能是因为您在两边使用的编码。尽量确保你的"args"在Java中作为UTF-8字符串存储,并尝试在你的c++代码中作为UTF-8字符串读取。

否则Java使用平台的默认编码,甚至可能不支持这些"èçàœ"字符。