utf 8-如何通过C++通过JNI传递扩展ASCII字符
utf 8 - how to pass Extended ASCII characters through JNI via C++
我正试图通过VC++使用JNI,并将类路径中的自定义目录作为UTF-8字符串传递-Djava.class.path=c:\myDir\my.jar
这工作得很好,我可以使用FindClass 在jar中找到方法
但当目录名包含任何扩展ASCII字符时,FindClass将返回NoClassDefFound异常。我想这是因为JVM无法加载jar文件,并且我在传递参数时出错了。
这是我的工作1) 创建一个std::wstring jarPath(L"-Djava.class.path=C:\Æ宋体œ\my.jar");2) 使用WideCharToMultiByte将wstring转换为CP_UTF83) 将utf8String复制到optionString并调用JNI_CreateJavaJVM
在调用JNI_CReatJavaJVM之前,我尝试过将转换后的utf8打印到日志文件中,它打印得很完美。
有人能告诉我CP_UTF8(在windows SDK WinN;s.h中定义)是否不是JNI所期望的吗?我该如何调试这个问题,任何帮助都将不胜感激。
提前感谢Rahul
文档建议选项字符串必须为"默认平台编码"。这可能意味着您需要使用CP_ACP。如果你的字符不能用这种编码表示,那么我不确定你能做什么。
(文件的短名称是否可用?)
相关文章:
- 是否可以通过C++扩展强制多个python进程共享同一内存
- static_assert在宏中,但也可以扩展到可以用作函数参数的东西
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 扩展光电二极管探测器以支持多个传感器
- C++中的VLA,扩展名为std=C++11
- C++扩展 ASCII 和负值
- URL 编码扩展的 ASCII 标准::字符串在 C++.
- C++扩展的 ASCII 代码
- "std::isdigit"正在崩溃几个扩展的 ASCII 字符
- C/C :libcurl 扩展ASCII chars =不良的Google Translation API结果
- 阅读ASCII扩展字符
- 如何在字符串中插入扩展的ascii字符
- 为什么扩展的 ASCII(特殊)字符需要 2 个字节才能存储
- 如何在QTextEdit中显示扩展的ascii字符
- 接受扩展的 ASCII 代码作为C++输入
- 流式输出扩展 ASCII
- 使用cin.get()读取扩展ASCII
- 代码::块C++中的扩展Ascii字符
- 扩展的 ASCII 字符C++
- utf 8-如何通过C++通过JNI传递扩展ASCII字符