3

私はいくつかのpdfテキスト抽出を行っていました。問題に直面したシナリオのスクリーンショットを添付しました。

コードのデバッグ中のテキストの値

スクリーンショット - コンソールに出力されるテキスト

Eclipse コンソールが「仕様」という単語を出力できなかったのはなぜですか?

代わりに、「仕様」として印刷されます。

文字が重なっているのがわかります。

ただし、コードのデバッグ中に、同じテキストが「疑問符」なしで表示されます。

同じテキストをコンソールに出力する方法はありますか?

助けてください。

4

2 に答える 2

4

問題は、Unicode の単一文字である「fi」合字 (「重なり合う文字」) です。デバッグ ビューでは、テキストを描画するための Windows メソッドが使用されます。これらは Unicode を認識しており、合字を正しくレンダリングできます。

コンソール ビューは特定のエンコーディングを使用します。Windows で使用する場合、デフォルトは「cp1252」、Codepage 1252、または ISO 8859 です。これらのエンコーディングはこの特定の文字を認識せず、印刷できないため、疑問符が代わりに使用されます。

Window > PreferencesGeneral > Workspace、を介して、一般的に Eclipse のエンコーディングを設定できますText file encoding。どこでも UTF-8 を使用するのは良い考えだと思いますが、既存のファイルで問題が発生する可能性があります。

プロジェクト プロパティのカテゴリで、プロジェクトごとにエンコーディングを設定できますResource

コンソール ビューのエンコーディングを設定したいだけの場合、最も没入型のソリューションではありませんが、これは正確には直感的ではありません。コンソール ビューのエンコーディングは、プロジェクトの実行に使用するランタイム構成のプロパティです。Run > Run Configurations...、実行構成Common

これらの方法のいずれかを使用してエンコーディングを UTF-8 に設定すると、合字がコンソール ビューに正しく出力されます。

もちろん、より一般的な設定は、より具体的な設定 (ワークスペース、プロジェクト、実行構成) によって上書きされない場合にのみ有効です。

于 2013-09-21T18:31:37.920 に答える