繁体   English   中英

十六进制到字符串转换不起作用

[英]Hex to String conversion does not work

我有此十六进制ffeeddcc ,我想将其转换为可读的字符串。 我正在使用在线转换器来做到这一点。

有些转换器根本不进行转换( http://chxo.com/scripts/hex2string.php ),而某些转换器会产生( ÿîÝÌ//www.string-functions.com/hex-string.aspx

有任何想法吗 ?

您可以尝试的简单方法是:

String h = "ffeeddcc";    
byte[] b = Hex.decodeHex(h.toCharArray());
System.out.println(new String(b, "UTF-8"));

另请参阅十六进制

另一种方法

  public String convertHexToString(String hex){

      StringBuilder sb = new StringBuilder();
      StringBuilder temp = new StringBuilder();

      //796f755f6172655f616e5f6964696f74 split into two characters 79, 6f, 75...
      for( int i=0; i<hex.length()-1; i+=2 ){
          String output = hex.substring(i, (i + 2));
          int decimal = Integer.parseInt(output, 16);
          sb.append((char)decimal);
          temp.append(decimal);
      }
      System.out.println(temp.toString());

      return sb.toString();
  }

编辑:

正如piet所说,我确认这些不是标准的ASCII代码,因此您遇到了问题。 如果您将使用标准的ASCII码,它将起作用。

用纯Java可能的实现。

 StringBuilder sb = new StringBuilder("796f755f6172655f616e5f6964696f74");
 while (sb.length() >= 2) {
      System.out.print((char)Integer.parseInt(sb.substring(0, 2), 16));
      sb.delete(0, 2);
 }

该实现非常幼稚,这意味着有优化的地方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM