0

ISOでエンコードされたファイルがあるが、Javaを使用してUTF-8としてファイルを読み取りたい場合でも、同じテキストを取得できますか?

µÃÿなどの特殊文字は同じように表示されますか?

4

2 に答える 2

1

いいえ、あなたはしません。UTF-8 は、ISO-8859-1 と同じ方法で U+007f を超える文字をエンコードしません (ISO-8859-1 は、U+0080 から U+00ff までを 1 バイトとしてエンコードします\x80\xff、UTF-8 はそれぞれに 2 バイトを使用します)。それらの文字)。

ファイルを開くときは、明示的なエンコーディング仕様を使用する必要があります。new InputStreamReader(new FileInputStream(...), <encoding>)

于 2012-09-19T23:06:13.940 に答える
0

要するに、いいえ。ISO での文字の (ビット単位の) 表現方法は、UTF-8 での文字の表現方法と同じではありません。

ただし、ファイルを ISO から UTF-8 に変換することはできますが、UTF-8 から ISO に変換することはできません。これは、UTF-8 には ISO よりも多くの認識可能な文字があるためです。

私の推奨は、エンコーディングを検出し ( Java: ストリームの正しい文字セットエンコーディングを決定する方法を参照)、それに応じて各ケースを処理することです。

于 2012-09-19T23:11:06.550 に答える