0

コマンドプロンプトをファイルに出力してJavaで読み取ろうとしています。次にÿþS[]e[]r[]i[]a[]l、NotePad ++で開こうとすると、シリアルが表示されます。この問題を解決できますか?

ありがとう

4

2 に答える 2

1

これは異なる文字エンコーディングの問題のようです。おそらく、あなたが読んでいるファイルは、すべての文字に 2 バイトが使用される UTF-16 エンコーディングを使用している可能性があります。Java でファイルを読み取るときに使用するエンコーディングを指定することで、問題を解決できるはずです。

Reader in = new InputStreamReader(new FileInputStream(filename), "UTF-16"));

Notepad++ は、ファイルの内容から、使用するエンコーディングがおそらく推測されることに注意してください。エンコーディングメニューで、Notepad++ がファイルの読み取りに使用しているエンコーディングを確認できます (別の「XXX でエンコード」に切り替えて、ファイルを変更せずに結果を表示することで、これを変更できます)。

于 2012-04-21T16:15:59.957 に答える
0

エンコーディングの問題が一致していないようです。ファイルを(Javaで)として読み取りますUTF-8。例えば:

Reader in = new InputStreamReader(new FileInputStream(filename), "UTF-8"));
于 2012-04-21T16:03:37.823 に答える