1

在执行 XOR 并将十六进制转换为字符串之后,我期望十六进制值“89”显示为“‰”,但 Eclipse 显示的是“?”。调试时,字符实际上是空白的。为什么?

  1. 我有字符串“r”,我将其转换为十六进制 =>“72”。
  2. 然后我用“FB”(û)=>“89”对“72”进行异或。
  3. 然后我使用这个函数将“89”转换为字符串:

    public static String HexToString(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);
      }
      System.out.println("Decimal : " + temp.toString());
    
      return sb.toString();
      }
    

将结果打印到控制台后,我看到“?” 代替 ”‰”。怎么了?

编辑:这是显示十进制值和(字符)十进制调试值的屏幕截图。 (char)十进制

4

1 回答 1

3
于 2012-05-08T18:05:22.447 回答