Кодировка текстовых файлов

Если модуль работает с текстовыми файлами, он должен учитывать параметр кодировка текстовых файлов рабочей среды. 

Кодировка текстовых файлов различается в зависимости от платформы и локали.  В большинстве случаев достаточно применять используемую по умолчанию в операционной системе кодировку.  Однако может потребоваться работать с текстовыми файлами и из других источников.  Учитывая возможность использования платформы в коллективной среде, вполне вероятно, что пользователи будут работать с текстовыми файлами, использующими другую схему кодировки, отличающуюся от их собственной, и необходимо гарантировать возможность обмена файлами с пользователями других групп.

Поэтому рабочая среда задает собственный профайл кодировки, указываемый пользователем в окне диалога Параметры.  Пользователи могут выбрать из имеющихся кодировок на странице параметров Общие > Редакторы или указать свою кодировку.  Модули, обрабатывающие текстовые файлы, например редакторы и компоновщики, должны сверяться с параметрами кодировки рабочей среды, а не полагать, что следует использовать кодировку операционной системы.

Получить параметры кодировки можно с помощью метода 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();