Kodning af tekstfil

Hvis din plugin læser tekstfiler, skal den overholde indstillingen Kodning af tekstfil på arbejdsbænken.  

text file encoding

Tekstfiler kodes forskelligt afhængig af platformen og sprogkonventionen. Det er oftest tiltrækkeligt at bruge standardkodningen for værtssystemets sprogkonvention. En bruger kan imidlertid ønske at arbejde med tekstfiler, som stammer fra en anden kilde. Eftersom platformen kan bruges i et netværksteammiljø, er det muligt, at brugerne vil arbejde med tekstfiler, der bruger en anden kodning end deres indbyggede kodning, så de let kan udveksle filer med et andet team.

Arbejdsbænken definerer derfor sin egen kodningsprofil, som er angivet for brugeren i dialogboksen Indstillinger. Brugerne kan vælge mellem de tilgængelige kodning på indstillingssiden Generelt > Arbejdsområde eller angive deres egen kodning. Plugins, som oversætter tekstfiler, som f.eks. teksteditorer og byggeprogrammer, skal slå op på arbejdsbænkens indstilling for kodning i stedet for at antage, at kodningen for det installerede styresystem bruges.

Du kan hente kodningsindstillingen med ResourcesPlugin.getEncoding(). Kodningen skal sendes til java.io-læsere i stedet for at bruge standardsystemkodningen. Hvis du har brug for at spore ændringer i indstillingen, kan du tilslutte en lytter til indstillingen ResourcesPlugin og reagere på ændringer i ResourcesPlugin.PREF_ENCODING. Følgende eksempel er hentet fra standardteksteditoren:

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

Brugerne kan også ændre kodninge for en bestemt fil på menuen Redigér > Kodning for en editor. Hvis du manipulerer tekst i en åben editor, skal du bruge IEncodingSupport.getEncoding() i stedet for at hente kodningen for den bestemte editor. Følgende eksempel viser, hvordan oplysningerne hentes fra en editor:

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