javaのStringはUTF-16形式で保存されています。示していただいたコードのstrはそもそもUTF-8でもShift_JISでもありません。ただの壊れたStringになるだけです。ソースコードがUTF-8であっても、"あ"と言ったリテラル文字列はコンパイル時にUTF-16に変換されます。 UTF-8やShift_JISを正しく扱うにはbyte[]ではなければなりません。Stringを介することで変換が可能です。下記コードを参考に、動作を確認して下さい。コードの処理の順番を逆にすれば、逆の変換になります。 Java 1import java.nio.charset.StandardCharsets; 2import java.nio.charset.Charset; 3 4class U8SJ { 5 public static void main(String[] args) {

