Javaの文字コード変換の文字化けについて
Javaの文字コード変換についてネットを通して勉強中です。
下記コード3行目でなぜ文字化けが発生してしまうかが分かりません。
また文字化けしている変数を使っているのに「getBytes("ISO8859_1")」して「System.out.print(String.format("%02X ", (int)b & 0xff));」でコンソールの表示していますが「長所と短所」のSJISコード(92 B7 8F 8A 82 C6 92 5A 8F 8A)が表示され、処理が上手くいっているのか疑問です。
public class Study {
public static void main(String[] args) throws UnsupportedEncodingException {
String original = "長所と短所";
String stext = new String(original.getBytes("Shift-JIS"), "ISO8859_1");
System.out.println("" + stext); // これは文字化け
byte[]bytes = stext.getBytes("ISO8859_1"); // Shift-JISのコードを表示
for (byte b: bytes) {
System.out.print(String.format("%02X ", (int)b & 0xff));
}
}
}