我使用的是WideCharToMultiByte,但我将其替换为env-> GetStringUTFChars。
我现在想用一个JNI env等效调用替换MultiBytetoWideChar。
是否存在通话?是GetStringChars吗?
答案 0 :(得分:0)
Java非常能够在众多字符集/编码之间进行转换。 JNI本身并非如此。
NewStringUTF
采用修改后的UTF-8编码的Unicode字符串。 NewString
采用UTF-16编码的Unicode字符串,但除非您与.NET互操作,否则您不太可能拥有它。
相反,您应该使用从字符串中创建Java byte[]
数组,获取String
构造函数方法并将byte[]
数组传递给它,并且可选地,将其传递给字符集的名称/编码。如果未传递字符集/编码,JVM将使用系统中当前的“本机”(可能取决于线程设置,用户设置等)。