jni中GB2312中文编码在Java中显示

    设备返回的中文是GB2312编码的,要在Java中显示,这涉及到GB2312到UTF-8的转换问题。

    最初的设想是在jni中完成。C中通用的转换方法是使用libiconv库,但仿照libdvbpsi编译过程,发现armeabi编译器认为wchar_t是不可移植的类型,不提供相关的支持,而iconv又恰好用到,导致编译不过。网上说的其它的编译方法(好像是取出的几个文件直接在NDK下编译,但我不清楚那几个文件的功能到底是什么)也不好用,最终放弃了对性能的追求。

    实际采用的方法是:在jni中返回一个jbyte型的数组到java层,java针对这个数组生成一个String对象(String str = new String(jni_bytes, "GB2312");),直接显示就行了。。。

你可能感兴趣的:(jni,jni,utf-8,gb2312)