XOR を実行し、16 進数から文字列に変換した後、16 進数値「89」が「‰」と表示されることを期待していましたが、Eclipse では「?」が表示されます。デバッグ中、文字は実際には空白です。なんで?
- 文字列 "r" を 16 進数 => "72" に変換しています。
- 次に、"72" と "FB" (û) => "89" を XOR します。
次に、この関数を使用して「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(); }
結果をコンソールに出力した後、「?」が表示されます。それ以外の "‰"。なにが問題ですか?
編集: これは、10 進数の値と (char)decimal のデバッグ値を示すスクリーンショットです。