2

を使用して文字列「¿」を書き出す場合

System.out.println(new String("¿".getBytes("UTF-8")));

¿ だけではなく ¿ と書かれています。

なぜ?そして、どうすれば修正できますか?

4

4 に答える 4

5

これを解決するために UTF-16 を使用する必要はありません。

new String("¿".getBytes("UTF-8"), "UTF-8");

うまく動作します。メソッドに指定さgetBytes()れたエンコーディングが String コンストラクターに渡すエンコーディングと同じである限り、問題はありません。

于 2008-10-06T20:55:52.050 に答える
2

String コンストラクターで Charset を指定する必要があります ( API ドキュメントを参照してください)。

于 2008-10-06T20:41:07.120 に答える
1

試す:

System.out.println(new String("¿".getBytes("UTF-8"), "UTF-8"));

文字列をバイトに変換するときと、バイトを文字列に戻すときの両方で、エンコーディングを指定する必要があります。

于 2008-10-06T20:56:48.447 に答える
0

システム コンソールが UTF-8 ではないようです

于 2008-10-06T20:36:05.210 に答える