Codifica file di testo

Se un plug-in legge file di testo, deve rispettare le preferenze di codifica file di testo impostate nel workbench. 

I file di testo vengono codificati in modi differenti a seconda della piattaforma e delle impostazioni internazionali.  Nella maggior parte dei casi, è sufficiente utilizzare la codifica file di testo predefinita per le impostazioni internazionali del sistema operativo host.  Un utente potrebbe, tuttavia, desiderare lavorare con file di testo di altra origine.  Data la possibilità di utilizzare Eclipse in un ambiente di team collegato in rete, è certamente possibile che alcuni utenti desiderino lavorare con file di testo che utilizzano un diverso schema di codifica piuttosto che lo schema di codifica nativo, in modo da poter scambiare i file con altri team con maggior facilità.

Per questa ragione, il workbench definisce il proprio profilo di codifica il quale viene specificato dall'utente nella finestra di dialogo Preferenze.  I plug-in che interpretano i file di testo, come editor e generatori, devono consultare le preferenze di codifica del workbench piuttosto che presupporre sia in uso la codifica del sistema operativo installato.

E possibile ottenere la preferenza di codifica corrente dal plug-in delle risorse mediante ResourcesPlugin.getEncoding().  Questa codifica deve essere passata ai lettori java.io per essere utilizzata in sostituzione della codifica predefinita di sistema.

Se è necessario tenere traccia delle modifiche a questa preferenza, è possibile agganciare alle preferenze di ResourcesPlugin un listener che reagisca alle modifiche apportate in ResourcesPlugin.PREF_ENCODING.  L'esempio riportato di seguito è ricavato dall'editor di testo predefinito:

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

 

Copyright
IBM Corp. e altri 2000,2002.