转自 http://www.cnblogs.com/bluesky4485/archive/2011/12/13/2285802.html 首先,需要明确几个关于编码的基本概念: java内部是使用的16bit的unicode编码(utf-16)来表示字符串的,无论英文还是中文都是2字节: jni内部是使用utf-8编码来表示字符串的,utf-8是变长编码的unicode,一般ascii字符是1字节,中文是3字节: c/c++使用的是原始数据,ascii就是一个字节,中文一般是GB2312编码,…