如果插件读取文本文件,则它应遵循工作台中的文本文件编码首选项。
根据平台和语言环境,以不同方式编写文本文件。大多数情况下, 对主机操作系统的语言环境使用缺省文本文件编码就足够了。但是, 用户可能想要使用来自另一个源的文本文件。考虑到在网络小组环境中使用 Eclipse 能力,用户当然可能想要使用这样的文本文件,这些文本文件使用不同于本地编码模式的编码模式, 以便可以与另一小组很容易地交换文件。
因此,工作台定义它自已的编码概要文件,该概要文件由用户在首选项对话框中指定。 解释文本文件的插件(如编辑器和构建器)应查看工作台编码首选项, 而不是假定正在使用安装的操作系统编码。
可以使用 ResourcesPlugin.getEncoding() 从资源插件获取当前编码首选项。应将此编码传送至 java.io 阅读器, 而不是使用缺省系统编码。
如果需要跟踪此首选项的更改,则可以将侦听器 hook 在 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(); }