首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

JAVA字符编码有关问题

2012-11-04 
JAVA字符编码问题JAVA如何把这个十六进制字符串数组转换成汉字?00 20 00 2000 31 00 30 00 3100 31 00 39

JAVA字符编码问题
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();} 

热点排行