なぜ文字列“¿” “¿”に翻訳されます.getBytes()を呼び出すとき
-
05-07-2019 - |
質問
文字列"¿"を書き込むとき使用して
System.out.println(new String("¿".getBytes("UTF-8")));
¿ ¿の代わりに記述されています。
なぜ?そして、どうすれば修正できますか?
解決
これを解決するためにUTF-16を使用する必要はありません:
new String("¿".getBytes("UTF-8"), "UTF-8");
正常に動作します。 getBytes()
メソッドに指定されたエンコーディングが、Stringコンストラクターに渡すエンコーディングと同じである限り、問題ありません!
他のヒント
文字列コンストラクターで文字セットを指定する必要があります( APIドキュメント)。
試してください:
System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));
文字列をバイトに変換するときと、バイトを再び文字列に変換するときの両方でエンコーディングを指定する必要があります。
システムコンソールがUTF-8ではないように聞こえます
所属していません StackOverflow