我有一个 Windows C++ 程序,我想在其中调用 JVM 并能够向它传递一个选项,该选项可能从 C++ 程序的命令行调用中给出(命令行选项可能不是纯文本,例如“ -Dblah=日本日本")。jni.h 中的 JavaVMOption 结构似乎只将选项字符串定义为字符,所以看起来我不能只传递一个宽字符串。
我尝试将其转换为 UTF-8 并将其存储为 C++ 端的窄字符串,然后在 Java 端将其转换回来,但似乎“日本”被实际替换为“??” 字符,因此在转换-取消转换过程中丢失。
我想错了吗?这不会起作用吗?