私は、次のプロパティを持つテキストファイルからデータを読んでいます:ファイルからの特殊文字を読む - Javaの
エンコード:ANSI
ファイルタイプ:PC
今、ファイルは、多くのが含まれています等の度記号(º)などの特殊文字私は、次のコードを使用してこのファイルを読んでいます:
File file = new File("C:\\X\\Y\\SpecialCharacter.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
ファイルENCOの場合dingがANSIの場合、上記のコードは特殊文字e.xを正しく読み込みません。ファイル内の行:
「低級熱および製品が165ºFの内部温度に達するまで煮る」、reader.readLine()
だろう出力:
「低級熱を、生成物を165Fの内部温度に達するまで煮る」
Iが変化ファイルをUTF-8にエンコードすると、その行はファイル内にあるように特殊文字を混乱させることなく読み込みます。
私の質問は、どの時点でデータが乱れるのですか?データをファイルに保存するとき、またはファイルから読み込むとき?メモ帳でファイルを開くと、すべての特殊文字が正しく表示されます。それはどうですか?
hexdumpが出力:
-0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F
00000000- 4C 6F 77 65 72 20 68 65 61 74 20 61 6E 64 20 73 [Lower heat and s]
00000001- 69 6D 6D 65 72 20 75 6E 74 69 6C 20 70 72 6F 64 [immer until prod]
00000002- 75 63 74 20 72 65 61 63 68 65 73 20 69 6E 74 65 [uct reaches inte]
00000003- 72 6E 61 6C 20 74 65 6D 70 65 72 61 74 75 72 65 [rnal temperature]
00000004- 20 6F 66 20 31 36 35 BA 46 [ of 165.F ]
、そのファイルから該当の行の[ 'hexdump'](http://www.richpasco.org/utilities/hexdump.html)を投稿してください。そのようにして、「º」がどのようにコード化されているかを知ることができます。 –
@MikeSamuel: –