我有一个Java应用程序,希望在其中调用另一个C++应用程序。
为此,在我的Java中,
Runtime.exec(args)
我的参数是“HelloWorldèçàœ”。
当我的C++收到此arg时,它将视为“HelloWorld ????”。我查看了内存映射,字符èçàœ出现为3f 3f 3f 3f。
(此外,我不确定这是否相关,但是在编译C++时,我选择了以下选项:“字符集=使用多字节字符集”(在Properties-> General中。)
问:如何将这样的参数从Java传递给C++?
谢谢
最佳答案
可能是因为您在两侧都使用了编码。尝试确保您的“args”在Java中存储为UTF-8字符串,并尝试在C++代码中将其作为UTF-8字符串读取。
否则,Java使用平台的默认编码,该编码甚至可能不支持这些“èçàœ”字符。