16进制字符串转换成中文方法.  

2006-12-28 13:25:49|  分类: Java编程|字号 订阅

现知道一个16进制的字符串,比如:"6162B4F36364BCD2657CBAC366",哪位高手能给一个将这个字符串转换成中文的方法啊,我到百度上搜了半天也没搜到,即使有也不是java方法。哪位高人能抽出宝贵的时间帮忙解决一下啊,万分感激!!!转换出来应该是六个字母,3个中文,还有一个符号,希望高手们把谜底揭开,关键是写出实现方法,谢谢了!!!!!!!!!!!!!!!!!!!!!!

 

回复求教!!哪位高手能将6162B4F36364BCD2657CBAC366转换成中文! 
 ymy7100   短消息   
回复主题求教!!哪位高手能将6162B4F36364BCD2657CBAC366转换成中文!

2006-12-21 下午1:14  

回复 1 of 4

回复

晕!
没有高手吗?
是因别的公司开发的delphi程序要调用我们的java程序,其中java中要写个函数,实现将他们传来的数据显示出来并存到数据库,哪位大虾伸出援手啊!!!!!!

 

回复求教!!哪位高手能将6162B4F36364BCD2657CBAC366转换成中文! [得分:50] 
 rehte   短消息   
回复主题求教!!哪位高手能将6162B4F36364BCD2657CBAC366转换成中文!

2006-12-21 下午2:42  

回复 2 of 4

回复

晕,帮帮你
应该是:abcde|f
首先要知道编码,中国汉字一般使用GBK或者gb2312gb2312GBK的子集,因此安全起见使用GBK一般就行了:

public class Decoder {
public static void main(String[]args){
String result=decodeString(args[0], "GBK");
System.out.println(result);

private static String decodeString(String string, String encoding) {
try {
byte[]data=string2Bytes(string);
return new String(data, encoding);
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
return null;
}

private static byte[] string2Bytes(String string) {
int blen=string.length()/2;
byte[]data=new byte[blen];
for(int i=0;i<blen;i++){
String bStr=string.substring(2*i,2*(i+1));
data[i]=(byte)Integer.parseInt(bStr,16);
}
return data;
}
}

运行:
java Decoder 6162B4F36364BCD2657CBAC366