将Hex转换为String时的奇怪结果

时间:2015-10-19 06:02:55

标签: java string hex decode

如何将十六进制值转换为字符串?我通过使用以下方法得到了这个奇怪的结果。

例如:

String result = DB_record.convertHexToString(PASSWORD); 
// c53255317bb11707d0f614696b3ce6f221d0e2f2 hex value;
System.err.println("result==="+result);

爪哇

 public String convertHexToString(String hex){

  StringBuilder sb = new StringBuilder();
  StringBuilder temp = new StringBuilder();
  for( int i=0; i<hex.length()-1; i+=2 ){

      //grab the hex in pairs
      String output = hex.substring(i, (i + 2));
      //convert hex to decimal
      int decimal = Integer.parseInt(output, 16);
      //convert the decimal to character
      sb.append((char)decimal);

      temp.append(decimal);
  }

  return sb.toString();
 }

输出

enter image description here

2 个答案:

答案 0 :(得分:0)

问题在这里     sb.append((char)的十进制);

这不是一种正确的方法,如何将int转换为String。

试试这个

sb.append(Integer.toString(decimal));

答案 1 :(得分:0)

 byte[] bytes = DatatypeConverter.parseHexBinary(hexString);
      String result= new String(bytes, encoding);