29

非常に率直な質問です。BOMの有無にかかわらずutf-8でエンコードされたテキストファイルを処理するようにEclipseを構成する方法はありますか?

これまで、utf-8エンコーディングでEclipseを使用してきましたが、BOMを含む別のエディターで生成されたファイルを編集しようとすると、Eclipseが適切に処理せず、「非表示の文字が表示されます」ファイルの先頭(BOM)。EclipseにBOMを使用してutf-8でエンコードされたファイルを認識させる方法はありますか?

4

1 に答える 1

19

バグ78455(「UTF-8ファイルへのBOMの書き込みを強制するオプションを提供する」)とバグ136854はどちらも、そのようなオプションに大きな期待を寄せていません。

ワークスペースでのエンコーディングのサポートは、Javaから利用できるものに基づいています
ワークスペース内の任意のリソースについて、文字セット文字列を受け取る任意のJavaAPIで使用できる文字セット文字列を取得できます。
例は次のとおりです。

  • ' US-ASCII'、
  • ' UTF-8'、
  • ' Cp1252'、
  • ' UTF-16'(ビッグエンディアン、BOMが自動的に挿入されます)、
  • ' UTF-16BE'(ビッグエンディアン、BOMは自動的に挿入されません)、
  • ' UTF-16LE'(リトルエンディアン、BOMは自動的に挿入されません)。

Javaエンコーディングの場合、「UTF-16」エンコーディングを除いて、BOMは無料で挿入(書き込み時)または破棄(読み取り時)されません
これがエンドユーザーにとって不可解であるとしても、これがすべてのJavaアプリケーションの動作方法です。
アプリケーションがユーザーの期待に一致するBOMを使用したUTF-8ファイルの作成をサポートする場合は、そのような機能を独自に提供する必要があります(JavaもResourcesモデルもそれを支援しないため)。
Eclipseは、BOMの検出に向けていくつかの改善を提供しますが、BOMを生成またはスキップすることはできません。

于 2010-05-25T15:19:07.997 に答える