Eclipseでは、デフォルトのエンコーディングをISO-8859-1に変更しました。それから私はこれを書いた:
String str = "Русский язык ";
PrintStream ps = new PrintStream(System.out, true, "UTF-8");
ps.print(str);
エンコーディングString
を指定しているので、正しく印刷されるはずです。UTF-8
ただし、印刷ではありません。
Eclipseでは、デフォルトのエンコーディングをISO-8859-1に変更しました。それから私はこれを書いた:
String str = "Русский язык ";
PrintStream ps = new PrintStream(System.out, true, "UTF-8");
ps.print(str);
エンコーディングString
を指定しているので、正しく印刷されるはずです。UTF-8
ただし、印刷ではありません。
ISO-8859-1
文字エンコードは0から255までの文字のみをサポートし、それ以外のものは「?」に変換される可能性があります。
ソースファイル(.java
ファイル)をISO-8859-1として保存すると、ISO-8859-1str
を使用してjavacでエンコードされます。あなたの問題は作成にありませんPrintStream
:str
あなたが印刷しているのは最初から間違っています。
はい、この出力を送信している端末はこのエンコーディングをサポートしていないようです。
Eclipseを実行している場合は、次のようにエンコードを設定できます。
基本的に、PrintStreamライターに、入力文字がUTF-8でエンコードされていることを期待し、UTF-8として出力するように指示しています。変換はありません。ファイルの文字エンコードとしてISO-8859-1を使用するようにIDEを設定した場合、ISO-8859-1でエンコードされた文字をUTF-8期待ライターにパイプするよりも、入力文字列が含まれます。そのため、ライターは受信したバイトをUTFでエンコードされた文字として扱い、データがジャンクになります。
ソースファイルをUTF-8でエンコードするようにIDEを設定し、文字が正しく表示および保存されていることを確認します。または、ライターにISO-8859-1として扱うように指示します。どちらの方法でもかまいません。