2009-03-30 2 views
1

私はjavaプログラムで読み込んで表示したいutf-8ファイルを持っています。正しいエンコーディングを取得するには?

eclipseコンソール(stdout)またはスイングでは、正しい文字の代わりに疑問符が表示されます。

BufferedReader fr = new BufferedReader(
         new InputStreamReader(
         new FileInputStream(f),"UTF-8")); 
System.out.println(fr.readLine()); 

inpuStreamReader.getEncoding() //prints me UTF-8 

私は一般的などのLinuxコンソール上またはFirefoxアクセント付き文字を表示する問題を持っていない

なぜそうでしょうか?私はこれから病気だ:/

は、私は、Javaの専門家ではないんだけど、あなたは必ずUTF-8ではありませんファイルをUTF-8 InputStreamReaderを作成しているようにそれはそう助け

答えて

2

をありがとうございました。

参照:Java : How to determine the correct charset encoding of a stream

+0

firefoxまたはvimのエンコードをutf-8に変更すると、アクセント付きの文字が表示されます。私はvim/kwriteにutf-8としてファイルを保存しようとしました。 – feiroox

+0

ファイルが最初に別のエンコーディングで保存されていた場合は、テキストエディタを使用してUTF-8として保存すると、通常はUTF-8に変換されません。 iconvのようなものを使う必要があります。 Firefox/vimを使って正しく表示されている文字についてはコメントできません。 –

+0

ああ、私は理由は分かりませんが、あなたは正しいです。ご協力ありがとうございます。 – feiroox

0

EclipseのコンソールはUTF-8文字を処理していない、および/またはそのコンソール用に設定されているフォントには、表示しようとしているUnicode文字をサポートしていないようですね。

EclipseをUTF-8文字を想定して構成し、使用しているフォントがファイルにエンコードされているUnicode文字を表示できることを確認してください。 Eclipse 3.1 New and Noteworthyページから

あなたは に打ち上げ 設定の[共通]タブをコンソールエンコード設定を使用して、デフォルト 異なる文字コード を使用して ディスプレイ出力にコンソールを設定することができます。

スイングについては、正しいフォントを選択する必要があると思います。システムがUnicode文字を表示しなければならない仕事でいくつかのパラメータがあります

0

、 -

  • 何よりもまず、それが頭に浮かぶが、あなたがきた入力ストリームまたはバッファのエンコーディングであり、すでに分かっている。
  • リストの次のものは、アプリケーションのUnicode機能です.Eclipseは、コンソール出力にUnicode文字の表示をサポートしています。 with a workaround :)。
  • 私の頭に残っているのは、コンソール出力に使用されているフォントの最後のものです。すべてのフォントがUnicode文字を表示するためのグリフを持っているわけではありません。

更新

Unicode文字の非表示が原因CP1252は、コンソール出力内の文字をエンコードするために使用されているという事実に最も可能性が高いです。これは、アプリケーションの実行コンフィギュレーションにアクセスすることで変更できます。これは、実行時設定の[共通]タブに表示されます。

+0

これはSystem.out.println( "\ u202D \ u0645 \ u0631 \ u0648 \ u0629")が動作しているため、おそらく回避策は必要ありません。 – feiroox

+0

アクセント付きの文字はどのコードページから派生していますか? –

+0

このリンクからヒントを見つけることができます:http://paranoid-engineering.blogspot.com/2008/05/getting-unicode-output-in-eclipse.html –

関連する問題