【发布时间】:2014-12-13 23:42:10
【问题描述】:
我正在尝试写入 logcat unicode 字符(UTF16;日文、韩文或中文等宽字符)。唯一的成功是将其作为字符串发送到 Java(例如下面的代码):
unsigned short* text = new unsigned short[100]; // or jchar*
.... // all some unicode to the array
jstring jtext = jniEnv->NewString(text, (jsize)length);
jniEnv->CallVoidMethod( JavaClass, JavaPrintUnicode, jtext );
... // Clean up
// Then java prints it out
但是,如果字节在 char 数组中,__android_log_print 将打印乱码文本。有没有办法在NDK(C++)端打印出文本?
【问题讨论】:
-
是否可以选择使用 UTF-8?
-
转换它对我来说比较困难。
-
请注意,您的
JavaPrintUnicode()方法实际上在后台执行的操作是将您的 UTF-16 转换为 UTF-8 以进行打印。
标签: java c++ unicode android-ndk logcat