在执行 XOR 并将十六进制转换为字符串之后,我期望十六进制值“89”显示为“‰”,但 Eclipse 显示的是“?”。调试时,字符实际上是空白的。为什么?
- 我有字符串“r”,我将其转换为十六进制 =>“72”。
- 然后我用“FB”(û)=>“89”对“72”进行异或。
然后我使用这个函数将“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(); }
将结果打印到控制台后,我看到“?” 代替 ”‰”。怎么了?
编辑:这是显示十进制值和(字符)十进制调试值的屏幕截图。