テキスト・ファイル・エンコード

プラグインがテキスト・ファイルを読み取る場合、ワークベンチのテキスト・ファイル・エンコード設定が重要になります。  

テキスト・ファイルは、プラットフォームとロケールに応じて異なった様式にエンコードされます。 多くの場合、ホスト・オペレーティング・システムのロケールのデフォルト・テキスト・ファイル・エンコードで十分です。 ただし、別のソースから作成されたテキスト・ファイルをユーザーが操作したい場合もあります。 ネットワーク化されたチーム環境でプラットフォームを使用できれば、 ファイルを別のチームと容易に交換できるよう、 ネイティブのエンコード・スキームとは異なるエンコード・スキームを使用するテキスト・ファイルで作業したくなる可能性があります。

この理由から、ワークベンチは独自のエンコード・プロファイルを定義します。 これは、「設定」ダイアログでユーザーによって指定されます。 ユーザーは、「一般」>「エディター」設定ページにある使用可能なエンコード選択項目から選択するか、 または独自のエンコードを入力できます。 エディターやビルダーなど、テキスト・ファイルを解釈するプラグインは、 インストール済みオペレーティング・システムのエンコードが使用中であることを前提とするのではなく、 ワークベンチ・エンコードの設定を調べます。

エンコード設定は、 ResourcesPlugin.getEncoding() を使用して入手できます。 このエンコードは、デフォルトのシステム・エンコードを使用する代わりに、java.io リーダーに渡されます。 この設定に対する変更を追跡する必要がある場合、 ResourcesPlugin 設定でリスナーをフックして、ResourcesPlugin.PREF_ENCODING の変更に対応できます。次の例は、デフォルト・テキスト・エディターからのものです。

public void initialize(StatusTextEditor textEditor) {
	
	fTextEditor= textEditor;
	
	fPropertyChangeListener= new Preferences.IPropertyChangeListener() {
		public void propertyChange(Preferences.PropertyChangeEvent e) {
			if (ResourcesPlugin.PREF_ENCODING.equals(e.getProperty()))
				setEncoding(null, false);
		}
	};
		
	Preferences p= ResourcesPlugin.getPlugin().getPluginPreferences();
	p.addPropertyChangeListener(fPropertyChangeListener);
	
	fEncodingActionGroup= new EncodingActionGroup(fTextEditor);
	fEncodingActionGroup.update();
}

ユーザーは、 エディターの「編集」>「エンコード」メニューで特定のファイルのエンコードを変更することもできます。 開いているエディター内のテキストを操作する場合、 特定のエディターのエンコードを取得するには、代わりに、IEncodingSupport.getEncoding() を使用する必要があります。 次の例は、この情報をエディターから取得する方法を示しています。

IEncodingSupport encodingSupport = (IEncodingSupport) editor.getAdapter(IEncodingSupport.class);
String encoding = encodingSupport.getEncoding();