Codering tekstbestanden

Als de plugin tekstbestanden raadpleegt, moet deze de codering voor tekstbestanden hanteren die kan worden ingesteld via de workbenchvoorkeuren. 

codering van tekstbestanden

De codering van tekstbestanden is afhankelijk van het platform en de locale. Meestal kunt u de standaardcodering voor tekstbestanden gebruiken van de locale van het besturingssysteem. Het kan gebeuren dat met tekstbestanden moet worden gewerkt die van een andere bron afkomstig zijn. Aangezien u het platform in een netwerkomgeving kunt gebruiken, is het zeer wel mogelijk dat met tekstbestanden moet worden gewerkt waarvoor een ander coderingsschema moet worden gebruikt, zodat bestanden eenvoudig uitgewisseld kunnen worden.

Daarom bevat de workbench een eigen coderingsprofiel dat u zelf kunt instellen via het dialoogvenster Voorkeuren. Een andere codering kan worden geselecteerd of ingevoerd op de voorkeurenpagina Algemeen > Werkgebied. Plugins waarmee tekstbestanden worden bewerkt, zoals editors en builders, moeten de coderingsinstelling van de workbench hanteren en niet zonder meer aannemen dat de codering van het geïnstalleerde besturingssysteem wordt gebruikt.

U kunt de coderingsinstelling ophalen via ResourcesPlugin.getEncoding(). U moet deze codering doorgeven aan java.io-readers en niet de standaardsysteemcodering gebruiken. U kunt een listener toepassen op de voorkeuren van ResourcesPlugin, zodat u kunt ingrijpen wanneer er wijzigingen optreden in ResourcesPlugin.PREF_ENCODING. Het onderstaande voorbeeld stamt uit de standaardteksteditor:

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

De codering kan ook per bestand worden ingesteld via Bewerken > Codering in een editor. Als u tekst in een geopende editor manipuleert, kunt u IEncodingSupport.getEncoding() gebruiken om de codering voor de editor op te halen. In het volgende voorbeeld ziet u hoe u deze editorgegevens kunt ophalen:

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