0

我使用的是 WideCharToMultiByte,但我用 env->GetStringUTFChars 替换了它。

我现在想用 JNI env 等效调用替换 MultiBytetoWideChar。

是否存在通话?是GetStringChars吗?

4

1 回答 1

0

Java 非常有能力在众多字符集/编码之间进行转换。JNI 本身不是。

NewStringUTF采用修改后的 UTF-8 编码的 Unicode 字符串。NewString采用 UTF-16 编码的 Unicode 字符串,但除非您与 .NET 进行互操作,否则您不太可能拥有它。

相反,您应该使用byte[]从您的字符串创建一个 Java 数组,获取一个String构造函数方法并将其传递给byte[]数组,并且可以选择传递您的字符集/编码的名称。如果您不传递字符集/编码,JVM 将使用系统中当前的“本机”字符集(这可能取决于线程设置、用户设置等)。

于 2013-10-03T16:25:47.283 回答