最近要做一下接口程序,客户通过http传过来的内容是转化成了GBK内码的字符串。
如:"B2E2CAD4",是汉字“测试”的GBK内码表示,需要在java端将其还原为原来的内容。
google后发现网上很多方法都是误人子弟,张冠李戴,于是只好DIY。不敢独享,公布如下:
/**
* Created on 2010-04-16
* @author yangguo
* @param isn GBK 内码字符串
* @return
*/
private static String gbk2Unicode(String isn) {
byte[] bytes = new byte[isn.length()/2];
for(int i = 0,j = 0 ;i < isn.length() ; i += 2,j++){
bytes[j] = Integer.decode("0X" + isn.substring(i, i+2)).byteValue();
}
try {
return new String(bytes,"gbk");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return isn;
}
}
附件附送一个生成GBK内码的方法和测试代码。