Verschlüsselung der Textdatei

Wenn Ihr Plug-in zum Lesen von Textdateien dient, sollte es die Benutzervorgaben für die Codierung von Textdateien berücksichtigen, die in der Workbench definiert sind. 

Textdateien werden abhängig von der Plattform und den verwendeten Ländereinstellungen unterschiedlich codiert.  In den meisten Fällen können Sie die Standardcodierung für Textdateien verwenden, die für die benutzten Ländereinstellungen des Host-Betriebssystems definiert sind.  Allerdings möchten Benutzer möglicherweise mit Textdateien aus anderen Quellen arbeiten.  Wenn Sie Eclipse in einer Teamumgebung mit Netzwerkunterstützung einsetzen können, dann besteht durchaus die Möglichkeit, dass die Benutzer mit Textdateien arbeiten wollen, die ein anderes als das native Codierungsschema benutzen, um den einfachen Austausch von Dateien mit einem anderen Team zu gewährleisten.

Aus diesem Grund definiert die Workbench ein eigenes Codierungsprofil, das vom Benutzer im Dialog Benutzervorgaben angegeben wird.  Plug-ins für das Interpretieren von Textdateien (z. B. Editoren und Erstellungsprogramme) sollten sich daher nach den Benutzervorgaben der Workbench für die Codierung richten, anstatt davon auszugehen, dass immer das Codierungsschema des installierten Betriebssystems verwendet wird.

Die aktuelle Codierungsvorgabe kann mit Hilfe von ResourcesPlugin.getEncoding() über das Plug-in für Ressourcen abgerufen werden.  Diese Codierung sollte an die java.io-Eingabeprogramme übergeben werden, anstatt die Standardcodierung des Systems zu verwenden.

Wenn Sie die Änderungen an diesen Benutzervorgaben protokollieren wollen, können Sie für die Benutzervorgaben für ResourcesPlugin einen Listener setzen und die Änderungen in ResourcesPlugin.PREF_ENCODING aufzeichnen. Das folgende Beispiel stammt aus dem Standardtexteditor:

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 Corporation und Andere 2000, 2002. Alle Rechte vorbehalten.