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