从GBK编码转成UTF-8编码
private String gbk2utf8(String gbkText) {
char[] c = gbkText.toCharArray();
byte[] fullByte =new byte[3*c.length];
for (int i=0; i<c.length; i++) {
int m = (int)c[i];
String word = Integer.toBinaryString(m);
StringBuffer sb = new StringBuffer();
//补零
for(int j=0, len=16-word.length(); j<len; j++){
sb.append("0");
}
sb.append(word);
sb.insert(0, "1110");
sb.insert(8, "10");
sb.insert(16, "10");
String s1 = sb.substring(0, 8);
String s2 = sb.substring(8, 16);
String s3 = sb.substring(16);
byte b0 = Integer.valueOf(s1, 2).byteValue();
byte b1 = Integer.valueOf(s2, 2).byteValue();
byte b2 = Integer.valueOf(s3, 2).byteValue();
fullByte[i*3] = b0;
fullByte[i*3+1] = b1;
fullByte[i*3+2] = b2;
}
String utf8Text = "";
try {
utf8Text = new String(fullByte, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return utf8Text;
}