Kódování textových souborů

Pokud váš modul plug-in čte textové soubory, měl by dodržovat předvolbu kódování textových souborů na pracovní ploše. 

Textové soubory se kódují různě, v závislosti na platformě a národním prostředí.   Většina času s použitím výchozího kódování textového souboru pro národní prostředí hostitelského operačního systému je dostatečná.  Avšak uživatel může chtít v některých případech pracovat s textovými soubory, které pocházejí z jiného zdroje.  Vzhledem ke schopnosti používat platformu v síťově propojeném týmovém prostředí je možné, že uživatelé budou chtít pracovat s textovými soubory, které používají kódovací schémata odlišná od jejich nativního kódovacího schématu, aby si mohli snadno vyměňovat soubory s jinými týmy.

Z tohoto důvodu pracovní plocha definuje svůj vlastní profil kódování, který uživatel určí v dialogovém okně Předvolby.  Uživatelé mohou kódování zvolit z dostupných voleb na stránce předvoleb Obecné > Editory nebo mohou své vlastní kódování zadat přímo.  Moduly plug-in, které interpretují textové soubory, jako například editory a tvůrce, by měly spíše konzultovat předvolbu kódování pracovní plochy, než předpokládat použití kódování nainstalovaného operačního systému.

Předvolby kódování získáte pomocí ResourcesPlugin.getEncoding().  Toto kódování by se mělo předat čtecím programům java.io , namísto použití kódování výchozího systému.  Chcete-li sledovat změny provedené v této předvolbě, můžete zapojit listener na předvolby ResourcesPlugin a reagovat na změny v ResourcesPlugin.PREF_ENCODING.  Následující příklad pochází z výchozího textového editoru:

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();
}

Uživatelé mohou také změnit kódování pro konkrétní soubor v nabídce Upravit > Kódování daného editoru.  Pokud manipulujete s textem v otevřeném editoru, měli byste raději použít IEncodingSupport.getEncoding(), abyste získali kódování pro konkrétní editor.  Následující příklad ukazuje, jakým způsobem získat tyto informace z editoru:

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