を使用して文字列「¿」を書き出す場合
System.out.println(new String("¿".getBytes("UTF-8")));
¿ だけではなく ¿ と書かれています。
なぜ?そして、どうすれば修正できますか?
を使用して文字列「¿」を書き出す場合
System.out.println(new String("¿".getBytes("UTF-8")));
¿ だけではなく ¿ と書かれています。
なぜ?そして、どうすれば修正できますか?
これを解決するために UTF-16 を使用する必要はありません。
new String("¿".getBytes("UTF-8"), "UTF-8");
うまく動作します。メソッドに指定さgetBytes()
れたエンコーディングが String コンストラクターに渡すエンコーディングと同じである限り、問題はありません。
String コンストラクターで Charset を指定する必要があります ( API ドキュメントを参照してください)。
試す:
System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));
文字列をバイトに変換するときと、バイトを文字列に戻すときの両方で、エンコーディングを指定する必要があります。
システム コンソールが UTF-8 ではないようです