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 la piattaforma 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.   Gli utenti possono selezionare una delle scelte di codifica disponibili nella pagina delle preferenza Workbench > Editor, oppure immettere una propria codifica.  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.

Le preferenze di codifica possono essere ottenute utilizzando ResourcesPlugin.getEncoding().  Questa codifica deve essere trasmessa 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 riguarda l'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();
}

Gli utenti possono anche modificare la codifica di uno specifico file nel menu Modifica > Codifica dell'editor.  Se si gestisce un testo all'interno di un editor, si deve invece utilizzare IEncodingSupport.getEncoding() per ottenere la codifica dell'editor in uso.  Il seguente esempio illustra come ottenere questa informazione dall'editor:

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

Copyright IBM Corporation e altri 2000, 2003.