Szövegfájl-kódolás

Ha a bedolgozó szövegfájlokat olvas, akkor el kell fogadnia a munkaterület szövegfájl-kódolás beállításait. 

A szövegfájlok a platformtól és a területi beállítástól függően különböző módon vannak kódolva. A legtöbb esetben a gazda operációs rendszer területi beállításának alapértelmezett szövegfájlkódolása elegendő. De előfordulhat, hogy a felhasználó másik forrásból származó szövegfájlokat kíván használni. Ha a platform használható hálózati csapatkörnyezetben, akkor a felhasználók a natív kódolási séma helyett biztosan használni fognak más kódolási sémával rendelkező szövegfájlokat, így egyszerűen lehet fájlokat cserélni más csapattal.

Ezen okból a munkaterület saját kódolási profilt határoz meg, amelyet a felhasználó ad meg a Beállítások párbeszédablakban. A felhasználók az Általános > Szerkesztők beállításoldalon rendelkezésre álló kódolási lehetőségek közül választhatnak, vagy megadhatnak saját kódolást.  Szövegfájlokat feldolgozó bedolgozóknak - mint például a szerkesztők és összeépítők - meg kell tekinteniük a munkaterület kódolási beállítást annak feltételezése helyett, hogy a telepített operációs rendszer kódolását használják.

A kódolási beállítás a ResourcesPlugin.getEncoding() segítségével kérhető le.  Az alapértelmezett rendszerkódolás helyett ezt a kódolást kell átadni a java.io olvasónak. Ha követnie kell a beállítás módosításait, akkor egy figyelő csatlakoztatható a ResourcesPlugin beállításokhoz, és reagálhat a ResourcesPlugin.PREF_ENCODING módosításaira.  Az alábbi példa az alapértelmezett szövegszerkesztőből származik:

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

A felhasználók egy adott fájl kódolását a szerkesztő Szerkesztés > Kódolás menüjében is megváltoztathatják. Ha a szöveget egy megnyitott szerkesztőben kezeli, akkor az adott szerkesztő kódolásának lekéréséhez inkább az IEncodingSupport.getEncoding() metódust kell használni.  Az alábbi példa bemutatja, hogy ezek az információk hogyan kérhetők le a szerkesztőtől:

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