JAVA如何把这个十六进制字符串数组转换成汉字?
00 20 00 20
00 31 00 30 00 31
00 31 00 39 00 38 00 35 00 30
00 37 00 32 00 37 00 8F
里面是性别,名族,日期
------解决方案--------------------
参考下这个帖子
http://topic.csdn.net/u/20070515/10/dbf0c19b-bce0-4614-aba5-53632938d8ba.html
------解决方案--------------------
String public String(byte[] bytes, String charsetName)
throws UnsupportedEncodingException构造一个新的 String,方法是使用指定的字符集解码指定的字节数组。新的 String 的长度是一个字符集函数,因此不能等于字节数组的长度。
当给定字节在给定字符集中无效的情况下,该构造方法无指定的行为。当需要进一步控制解码过程时,应使用 CharsetDecoder 类。
参数:
bytes - 要解码为字符的字节
charsetName - 受支持的 charset 的名称
抛出:
UnsupportedEncodingException - 如果指定字符集不受支持
---------------------------
String类的一个构造方法,第二个参数指定你的bytes是什么字符集.
------解决方案--------------------
- Java code
String HX = "BABAD7D6D7AABBBB";byte[] b = new byte[HX.length()/2];for(int i=0;i<HX.length();){ int j = Integer.parseInt(HX.substring(i,i+2), 16); b[i/2]=(byte) j; i+=2;}try { System.out.println(new String(sb,"GB2312"));} catch (UnsupportedEncodingException e) { e.printStackTrace();}