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

Кодировка текстовых файлов различается в зависимости от платформы и локали. В большинстве случаев достаточно применять используемую по умолчанию в операционной системе кодировку. Однако может потребоваться работать с текстовыми файлами и из других источников. Учитывая возможность использования платформы в коллективной среде, вполне вероятно, что пользователи будут работать с текстовыми файлами, использующими другую схему кодировки, отличающуюся от их собственной, и необходимо гарантировать возможность обмена файлами с пользователями других групп.
Поэтому рабочая среда задает собственный профайл кодировки, указываемый пользователем в окне диалога Параметры. Пользователи могут выбрать из имеющихся кодировок на странице параметров Общие > Редакторы или указать свою кодировку. Модули, обрабатывающие текстовые файлы, например редакторы и компоновщики, должны сверяться с параметрами кодировки рабочей среды, а не полагать, что следует использовать кодировку операционной системы.
Получить параметры кодировки можно с помощью метода 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();