Plugin 'AutoCodepage v1.2.7' für 'notepad++ v8.7.4' funktioniert nicht?

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.


Taroc  29.12.2024, 22:52

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

HeinDaddel1 
Beitragsersteller
 29.12.2024, 22:35

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.

Bild zum Beitrag

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

Woher ich das weiß:Recherche
 - (Codierung, notepad-plus-plus)

HeinDaddel1 
Beitragsersteller
 29.12.2024, 15:57

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.

Taroc  29.12.2024, 16:30
@HeinDaddel1

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

HeinDaddel1 
Beitragsersteller
 29.12.2024, 22:34
@Taroc

Die Settings in AutoCodepage habe ich gleich nach der Installation entsprechend definiert. Dies hatte ich auch so geschrieben. Das ist also nicht das Problem.

Taroc  29.12.2024, 22:40
@HeinDaddel1

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...

Taroc  29.12.2024, 23:08
@HeinDaddel1

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

HeinDaddel1 
Beitragsersteller
 29.12.2024, 23:22
@Taroc

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?

Taroc  29.12.2024, 23:25
@HeinDaddel1

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.

HeinDaddel1 
Beitragsersteller
 29.12.2024, 23:31
@Taroc

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.

Taroc  29.12.2024, 23:49
@HeinDaddel1

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

HeinDaddel1 
Beitragsersteller
 30.12.2024, 00:11
@Taroc

Danke für den Hinweis. Meine Datei.oem850 ist nur eine Textdatei.