「FileInputStream」と「FileReader」を使用して、Unicode 文字を含むファイルからデータを読み取ります。
デフォルトのエンコーディングを「cp-1252」に設定すると、両方ともジャンク データが読み取られます。デフォルトのエンコーディングを UTF-8 に設定すると、両方とも正常に読み取られます。
- これらの両方がシステムデフォルトエンコーディングを使用してデータを読み取るというのは本当ですか?
- 次に、システムエンコーディングに依存する場合、文字ストリームを使用する利点は何ですか。
以下以外の方法はありますか:
BufferedReader fis = new BufferedReader(new InputStreamReader(new FileInputStream("some unicode file"),"UTF-8"));
デフォルトのエンコーディングが UTF-8 以外の場合にデータを正しく読み取るため。