UTF-8 でエンコードされたファイル (Windows のテキスト エディターで作成したファイル) を読み取り、文字を画面に表示する jar ファイルがあります。OS X および Linux では、これは問題なく動作します。ただし、Windowsで動作させるのに少し問題があります...リーダーとライターを次のように定義しました:
FileInputStream file = new FileInputStream(args[0]);
InputStreamReader reader = new InputStreamReader(file, "UTF8");
PrintStream writer = new PrintStream(System.out, true, "UTF8");
また、コマンド プロンプトのフォントをLucida Console
に、文字エンコーディングを のchcp 65001
順に UTF-8 に変更しました。
今、私が実行するjava -jar Read.jar file.txt
と、プロンプトはこれを吹き飛ばします。
áéí
ñóú
[]óú
[]
ただし、 を実行するtype file.txt
と、プロンプトにファイルの内容が正しく表示されます。
áéí
ñóú
ファイルを BOM 付きまたは BOM なしで保存しようとしましたが、違いはありませんでした。(UTF-8 はエンディアンがないので BOM も必要ありませんよね?) でコンパイルしてみましjavac -encoding utf8 *.java
たが、同じことが起こります。
私は今アイデアがありません。誰か助けてくれませんか?