Stichworte: TecBook, TechnikBewie's Mikrowelt

Notepad++: Textkodierung in vielen Dateien ändern

Der Editor notepad++ zählt zu den beliebtesten Editoren bei Programmierern. Er kann eine Menge, beispielsweise auch Textdateien in verschiedene Zeichen-Formate umwandeln. Was ganz praktisch ist, denn manch einer hat viele alte ANSI-Dateien, die er wieder in einer modernen utf-8-kodierten Website unterbringen will. Dazu müssen sie aber erst mal umkodiert werden, sonst tauchen am Bildschirm des Users statt der Umlaute seltsame Zeichen auf.
notepad++ liefert den Weg: Datei laden, umkodieren, Datei speichern – funktioniert! Bei größeren Dateimengen kostet das viel Zeit und ist recht stumpfsinnig. Besser sollte es mit einem Makro gehen – also zeichne ich den gerade beschriebenen Vorgang als Makro auf, weise dem Makro ein Tastenkürzel zu (Alt + Leertaste) und speichere ihn unter dem Namen „utf-8 speichern“ ab. Aber von wegen: Statt die Textdatei zu konvertieren und wieder zu speichern ersetzt das Makro den Text einfach durch den letzten Inhalt der Zwischenablage und überschreibt damit die alte Datei. Kompletter Text vernichtet! Zum Glück gabs noch ein Backup.
Alle Versuche mit anderen Tastenkürzel und sonstigen Klimmzügen brachten nichts. Im Web habe ich dann einen Workaround gefunden. Offenbar beruht das Problem auf einem bug bei der Makroaufzeichnung durch Notepad++, deswegen muss der Makro manuell programmiert werden. Wie es geht, zeigt diese Website. Einige Grund-Infos daraus will ich hier zusammenfassen, weil sie beim tieferen Einstieg in die Geheimnisse von notepad++ nützlich sind. Aber Achtung: Wer Änderungen vornimmt, wie sie im folgenden beschrieben werden, tut dies auf eigene Gefahr! Ich übernehme keine Haftung für die Folgen von Änderungen an diesen Dateien!

Die Makros werden nebst vielen anderen Parametern in einer Datei namens shortcuts.xml abgelegt, die mit einem Texteditor bearbeitet werden kann. Diese Datei gibt es im Programmverzeichnis von notepad++, dort ist sie aber irrelevant. Die tatsächlich notwendige Datei findet man im Verzeichnis „C:\Users\xxxxxx\AppData\Roaming\Notepad++“; wobei xxxxxx durch den Usernamen ersetzt werden muss, für den der Editor installiert wurde. Dort findet sich auch der vorhin gespeicherte Makro für die Konvertierung, erkennbar an dem Namen, den ich ihm gegeben habe.
In diesem Verzeichnis gibt es auch die Datei nativeLang.xml. Darin sind zahlreiche Programmparameter, unter anderem auch die Funktionscodes für die verschiedenen Funktionen und Aktionen von notepad++ abgelegt. Da finden sich beispielsweise auch folgende Zeilen:

Die werden jetzt in der Datei shortcuts.xml in den offensichtlich defekten Makro eingetragen, so dass sich folgende Zeilen ergeben:

Damit funktioniert es jetzt. Ich kann jedesmal eine 20 bis 40 Dateien in den Editor laden und sie mit wenigen Tastenanschlägen abarbeiten. Ist zwar kein richtiger, automatischer Batch, geht aber sehr flott und einige hundert Dateien habe ich recht schnell konvertiert.
Wer noch etwas mehr zum Thema Makro programmieren wissen will, dem sei die oben verlinkte Site empfohlen.