【发布时间】:2015-07-12 09:31:18
【问题描述】:
我正在尝试为现有 C++ 代码创建 Java 接口。 我的一项功能与此类似:
JNIEXPORT jstring JNICALL Java_com_testproxy_NativeInterface_serialize
(JNIEnv* env, jobject obj, along op)
{
return env -> NewStringUTF(<somestdstring>.c_str());
}
问题在于,在某些情况下,第一个元素是'\0',因此,返回值是一个空字符串。那么是否有一些函数可以将 char* 转换为 jstring,它也将字符串的长度作为参数?
【问题讨论】:
-
读到这个:docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/…我发现这个“这种格式和标准的UTF-8格式有两个区别。首先,空字符(char)0是使用两字节格式编码的而不是一字节的格式。" 现在我只需要找到空字符的两字节编码...来自:en.wikipedia.org/wiki/UTF-8"在修改的 UTF-8 中,[23] 空字符 (U+0000)编码为 0xC0,0x80;"
标签: java android c++ android-ndk