Plugin 'AutoCodepage v1.2.7' für 'notepad++ v8.7.4' funktioniert nicht?
Hallo, in einer Batchdatei leite ich mit dir > Datei.oem850 den Verzeichnis-Inhalt in eine Datei um.
In AutoCodepage habe ich die Einstellungen so vorgenommen, wie in den Internet-Beispielen dargestellt. Lade ich die erstellte Datei Datei.oem850 in notepad++, wird nicht die Codierung OEM 850 aktiviert. In der Statuszeile steht weiterhin UTF-8. Ich kann OEM 850 manuell aktivieren, aber dann brauche ich ja AutoCodepage nicht mehr. Hast Du einen Tip für mich, wo hier das Problem liegt? Gruß Hein
2 Antworten
Keine Ahnung wofür Du ein völlig veraltetes Plugin verwenden möchtest.
Hast Du einen Tip für mich, wo hier das Problem liegt?
Das Problem ist nicht NP++ oder irgendwelch Plugins, sondern Dein Verständnis bezüglich Zeichencodierung...
Unter bis einschließlich Windows 7 ab es diverse Unstimmigkeiten hinsichtlich der Codierung von Batch. (viele waren in schlechten "noch veralteteren" Anleitungen begründet.) ...und bis heute lese ich Anleitungen von Leuten, welche keine Ahnung haben, welche irgendwelche 12xx-Magie verwenden um Zeichen lesbar darzustellen. Dabei muss man nur Explizit mit UTF8 arbeiten.
Generell arbeitet die Ausgabe der Windowsconsole (cmd.exe) "noch" mit der Codepage 850. (um kompatibel zu altem Müll zu sein)
Ich habe versucht Dein Szenario nachzuvollziehen , Die Statuszeile zeigt standardmäßig (erwartungsgemäß) ANSI an. Dabei ist die Codepage erstmal völlig Wurst. ANSI besagt lediglich erstmal : 8 Bit pro Zeichen. Da es keinerlei explizite Kennzeichnung in BOM-losen Dateien bezüglich der Codierung gibt, kann ein Editor/Anwendung lediglich anhand des Inhalts erraten , welche Codierung vorliegt. Einige Zeichenfolgen machen unter den verschiedenen Codierungen mehr Sinn als andere. Generell gibt es bei Dateien, welche lediglich Zeichen mit einem ASCII-Code <127 enthalten keinen erkennbaren Unterschied zwischen ANSI und UTF-8!
Wenn Du den "dir-Befehl" anwendest gibt es bereits signifikante Unterschiede zwischen Screenausgabe und Dateiumleitung.
Das Windows Dateisystem arbeitet generell nicht mehr mit lokalen 12xx-Codepages, sondern mit UTF-8 -Namen! Somit werden auch alle Dateinamen von "dir" UTF-8 codiert an die Console (cmd) geliefert.
Was die Console daraus macht hängt von der voreingestellten Codierung und dem Ausgabe"Medium" ab.
- Bei der Screenausgabe werden (ab Win 10) Umlaute automatisch (abhängig vom Font) durch das passende Zeichen ausgegeben.
- Bei einer Datei-Umleitung ist der Font jedoch nicht bekannt, deshalb werden für Umlaute Mehrbyte-Werte in die Datei geschrieben. (was die bekannten "Verstümmelten" Zeichen liefert). Derartige signifikante Bytefolgen können von Editoren wie NP++ &Co erkannt werden und somit die Datei als UTF-8 deklarieren, auch wenn diese als eigentlich "ANSI" gespeichert wurden. dagegen gibt es kein Patentrezept. Die Editoren können nur "schätzen".
Wenn Du explizit festlegen möchtest, mit welcher Codierung Ausgaben erfolgen sollen, verwende den chcp-Befehl
@echo off
chcp 850 >nul
dir >"Datei.txt"
wie gesagt , das ändert nichts daran wie eventuell eingelesene UTF-Zeichen interpretiert werden.
Ich kann nur empfehlen auf modernen Systemen mit UTF-8 zu arbeiten.
Batch (.cmd)-dateien grundsätzlich als UTF-8-Datei ohne BOM speichern und am Begin der Batch die passende Codepage 65001 setzen.
@echo off
chcp 65001 >nul
>"демонстрация.txt" echo Маша и Медведь
..das macht auf modernen Systemen den wenigsten Ärger.
Wenn Du ganz modern arbeiten möchtest, vergiss Batch und verwende Powershell. und gib bei Dateioperationen explizit das gewünschte Encoding an.
Ich glaube du hast die Frage nicht richtig gelesen... Es ging nie darum erklärt zu bekommen wie Zeichencodierung funktioniert. So viel geschrieben und doch nichts gesagt
Deine Beispiele bringen nicht den Erfolg. Wieso veraltetes Plugin? Es ist von 2024.
Öffnest du die Datei direkt mit NP++?
Wenn ja kann es sein dass hier der Fehler liegt.
Ich weiß nicht ob der Fall des Öffnens einer neuen Datei, evtl zsm mit dem Öffnen von Np++, das erste Event auslöst, die anderen Events ja aber auf keinen Fall
Probier also mal mehrere Dateien zu öffnen und schau was passiert wenn du zwischen den Tabs hin und her springst

Habe das Problem gefunden. Du gehst wie folgt vor:
- Du füllst die Felder "Groupname" und "Codepage to set" aus und drückst das Plus unter dem linken Fenster
- Dann schaust du dass deine Gruppe oben im Fenster blau angewählt ist und füllst das Feld "New Filename Extensions" aus und drückst das Plus auf der rechten Seite
Damit hast du deiner Gruppe eine von vielen möglichen Extensions hinzugefügt. Auf der linken Seite werden nämlich die Gruppen und auf der rechten Seite die zu der angewählten Gruppe gehörenden Extensions angezeigt
Die Settings in AutoCodepage habe ich gleich nach der Installation entsprechend definiert. Dies hatte ich auch so geschrieben. Das ist also nicht das Problem.
Kontrolliere bitte trotzdem noch einmal die Settings, oder stelle hier ein Bild ein. Ich habe das PlugIn v1.2.7 bei mir in NP++ installiert, die Einstellungen wie von mir beschrieben festgelegt und eine Testdatei test.OEM850 erstellt. Das System ändert bei Öffnen der Datei automatisch die Codierung. Entweder ist das PlugIn bei dir fehlerhaft installiert oder du hast einen Fehler in den Einstellungen...
Da fragst du mich was😅 Habe hier noch nie einen Beitrag erstellt... Man kann seine ursprüngliche Frage aufjedenfall um Bilder und Text ergänzen, wie aber bin ich überfragt
Bilder einstellen ist nicht möglich. gutefrage hat absichtlich keine Möglichkeit eingebaut um im Privatchat Bilder zu posten. Ich habe die Settings so eingestellt, wie Du es beschrieben hast. Welche Werte hast Du bei 'Code page to set' und 'Expected language' eingetragen?
Im Privatchat ist das nicht möglich doch man kann Bilder nachträglich in die ursprüngliche Frage einstellen, aber egal. Bei Code Page to Set muss in deinem Fall OEM850 angeklickt werden. Expected Language ist optional weshalb bei mir freigelassen. Wichtig ist wie gesagt dass am Ende bevor du das Fenster schließt in den beiden weißen rechteckigen Flächen JEWEILS mindestens ein Eintrag steht.
Danke für Deine Hilfe und Ausdauer. Es hat geklappt. Ich habe 'Expected language' leer gelassen. Nun macht AutoCodepage genau das, was es machen soll.
Alles klar, freut mich. Falls dus noch nicht herausgefunden hast, mit Expected Language kannst du zusätzlich zum Codierungsverfahren auch die Programmier/ Skriptsprache der eingelesenen Datei im Notepad Menü festlegen
Danke für den Hinweis. Meine Datei.oem850 ist nur eine Textdatei.
Hallo. Es spielt keine Rolle, ob ich die erstellte Datei in np++ über ‚Öffnen…‘ lade oder im Explorer zweimal darauf klicke und so die Datei in np++ lade. In beiden Fällen wird OEM 850 nicht aktiviert. Auch wenn ich mehrere Dateien mit der Erweiterung .oem850 lade, wird ebenfalls nicht auf OEM 850 umgeschaltet.