Codificação do Arquivo de Texto

Se seu plug-in ler arquivos de texto, ele deverá aceitar a preferência de codificação de arquivo de texto no workbench. 

Os arquivos de texto são codificados de forma diferente, dependendo da plataforma e do locale.  Na maior parte do tempo, será suficiente utilizar a codificação de arquivo de texto padrão para o locale do sistema operacional do host.  Entretanto, um usuário pode trabalhar com arquivos de texto originados de outra fonte.  Graças à capacidade de utilizar o Eclipse em um ambiente de equipe em rede, certamente é possível que os usuários trabalhem com arquivos de texto que utilizem um esquema de codificação diferente do esquema de codificação original para facilitar a troca de arquivos com outra equipe.

Por este motivo, o workbench define seu próprio perfil de codificação, especificado pelo usuário no diálogo Preferências.  Os plug-ins que interpretam arquivos de texto, como editores e construtores, devem consultar a preferência de codificação do workbench em vez de assumir que a codificação instalada do sistema operacional está em uso.

A preferência de codificação atual pode ser obtida no plug-in de recursos utilizando ResourcesPlugin.getEncoding().  Essa codificação deve ser transmitida para leitores java.io, em vez de utilizar a codificação padrão do sistema.

Se for necessário rastrear alterações para essa preferência, conecte um ouvinte nas preferências ResourcesPlugin e reaja a alterações em ResourcesPlugin.PREF_ENCODING.  O exemplo a seguir vem do editor de texto padrão:

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 outros 2000,2002.