0

2 つの異なるマシンの文字エンコーディングが異なる場合、Java プログラムから両方のマシンの同じファイルを同様の方法で読み取る方法は?

4

3 に答える 3

2

次のようなものを使いたいだけのようです:

InputStream inputStream = new FileInputStream(...);
Reader reader = new InputStreamReader(reader, "UTF-8"); // Or whatever encoding

基本的に、プラットフォームのデフォルト エンコーディングを使用する必要はなく、ほとんど使用しないでください。プラットフォームのデフォルトのエンコーディングをFileReader 常に使用するのは面倒です:(プラットフォームのデフォルトを使用することを明示的に指定している場合でも、エンコーディングを明示的に指定することを好みます:)

于 2012-08-22T18:28:01.657 に答える
0

マシンの設定を変更する必要はありません。

文字エンコーディングを設定できる任意の java.io.Reader サブクラスを使用できます。たとえば、InputStreamReader は次のようになります。

new InputStreamReader(new FileInputStream("file.txt"), "UTF8");
于 2012-08-22T18:30:07.603 に答える
0

両方の環境でファイルの読み取り/書き込みを制御できます。

Java でのテキスト ファイルの操作

読み取り側のみを制御できます。

  1. ファイルの書き込みに使用されたエンコーディングを知っている: ファイルの書き込みに使用されたエンコーディングを特定し、同じエンコーディングを使用してファイルを読み取ります。
  2. ファイルの書き込みに使用されたエンコーディングがわからない:あなたができる最善の方法は、エンコーディングを推測することです:文字エンコーディング検出アルゴリズム

アップデート

Eclipse コンソールで出力が正しく表示されないという問題がある場合は、Eclipse 自体のエンコード設定に問題がある可能性があります。日食を修正する方法については、この記事をお読みください。

于 2012-08-22T18:33:13.203 に答える