von MarkF » 03.11.2023, 15:11
Holgi hat geschrieben: 02.11.2023, 17:47
MarkF hat geschrieben: 02.11.2023, 16:49
Die Datei wird nur dann als Ansi-Datei erkannt, wenn innerhalb der ersten 1024 Byte ein Umlaut (oder, ich vermute, ein anderes Sonderzeichen) erscheint.
Das deckt sich mit meinen Erfahrungen:
"Dann drauf gekommen:
nach der Umstellung auf ANSI tatsächlich auch mal einen Umlaut eingegeben und dann abgespeichert.
Siehe da: ANSI bleibt erhalten."
Da habe ich ja auch gleich am Anfang einen Umlaut eingegeben.
Ich habe es gelesen. Ich bin aber nicht sicher, ob wir behaupten können, daß nicht in ANSI abgespeichert wird, genauer gesagt bin ich ziemlich sicher, daß beim Speichern die ANSI-Kodierung erfolgt.
Nach meinen Beobachtungen wird zwar in ANSI gespeichert, aber der Bug tritt nur beim Lesen auf. Ich kann das mit dem Speichern aber nur indirekt erkennen, denn ich weiß nicht, woran man eine im ANSI-Format gespeicherte Textdatei informationstechnisch (Dateistruktur, einleitende Bits, was auch immer) erkennt. Ich sehe nur: Wenn ich den Inhalt einer KaLoMa-Datei, bei der die Umlaute erst nach 1024 Byte auftreten, in Wordpad öffnen, kopiere und in Notepad einfüge (und dann natürlich die Umlaute aufgrund der direkten Texteingabe zu sehen sind) und dann in Notepad mit ANSI-Format abspeichere, dann wird diese Datei in KaLoMa richtig gelesen und die Umlaute richtig angezeigt. Was ja wohl zwingend voraussetzt, daß Notepad die Datei im ANSI-Format gespeichert hat.
Jenseits dieser Schlußfolgerung, die das Abspeichern durch Notepad betrifft, kann ich daher mit 100% Sicherheit (nur) sagen, daß Notepad beim Lesen/Öffnen einer Datei ungeachtet des Formats/Kodierung der Datei Umlaute und Sonderzeichen bzw. die festgelegte ANSI-Kodierung ignoriert, wenn der erste Umlaut/Sonderzeichen erst nach dem 1024. Byte auftritt.
Wenn nur als ANSI gelesen (oder gespeichert) würde, wenn überhaupt irgendwo in der Datei ein Umlaut/Sonderzeichen auftaucht, dann würde ich das zwar immer noch als Bug ansehen (weil explizit beim Speicher vorgegeben), aber MS könnte und würde das als "stringent" und "logisch" verteidigen: ANSI-Format nur bei Bedarf und Bedarf nur wenn Umlaute/Sonderzeichen vorkommen.
Aber der tatsächliche Bug ist ja, daß
in den ersten 1024 Byte ein Umlaut/Sonderzeichen vorkommen muß! Es hilt nichts, wenn nach den ersten 1024 "normalen" Zeichen 100 oder 1.000 Sonderzeichen vorkommen.
Man kann ja eine "Default"-Txt Datei anlegen mit z.B.:
am Anfang.
Wie geschrieben hatte ich das getan mit der dafür vorgesehenen Datei "template.txt" im Ordner c:\windows\shellnew. Früher, also noch ANSI Standard war, sollte diese (leere) Datei im UTF-8-Format gespeichert bewirken, daß Notepad eine/die neue Datei als UTF-8-Datei öffnet. Einzutragen in der Registry:
Code: Alles auswählen
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.txt\ShellNew]
"FileName"="template.txt"
Mit Win11 bzw. UTF-8 als Standard und ANSI als Format dieser template.txt funktioniert das aber nicht - also in Hinblick auf das Wunschformat ANSI.
Gestern konnte ich feststellen (bzw. meine mich so zu erinnern): Solange diese Datei leer ist wird das ANSI Format der Datei ignoriert. Hat sie einen Inhalt, wird diese template.txt-Datei regulär als Textdatei geöffnet. Steht innerhalb der ersten 1024 Byte ein Umlaut/Sonderzeichen, wird auf ANSI-Kodierung umgeschaltet. Andernfalls eben nicht und auch danach erscheinende Umlaute werden nicht richtig angezeigt.
Heute: Die template.txt-Datei wird insgesamt ignoriert. Keine Ahnung wieso.
Bin jetzt dazu übergegangen, den alten Editor (also nicht die Store App) wieder als Standard Editor zu implementieren.
Dazu werden bei mir bei einer Neuinstallation u.a. folgende Registry-Einträge vorgenommen:
Code: Alles auswählen
;Restore Old Classic Notepad on Windows 11
[HKEY_CLASSES_ROOT\Applications\notepad.exe]
"NoOpenWith"=-
[HKEY_CURRENT_USER\Software\Microsoft\Notepad]
"fWindowsOnlyEOL"=dword:00000000
"fPasteOriginalEOL"=dword:00000000
"ShowStoreBanner"=dword:00000000
"iDefaultEncoding"=dword:00000001
Bei mir ebenso plus zahlreiche weitere Einträge.
Code: Alles auswählen
[HKEY_CLASSES_ROOT\*\shell\Mit Notepad öffnen\command]
@="notepad.exe %1"
"Icon"="C:\\Windows\\System32\\notepad.exe"
Fehlt bei mir.
Wie ich bereits dazu geschrieben haben: Das gilt nicht (mehr) für Windows 11 bzw. dessen Notepad. Probiere es aus, es funktioniert leider nicht.
[quote=Holgi post_id=418004 time=1698943630 user_id=40152]
[quote=MarkF post_id=418002 time=1698940174 user_id=45089]
Die Datei wird nur dann als Ansi-Datei erkannt, wenn innerhalb der ersten 1024 Byte ein Umlaut (oder, ich vermute, ein anderes Sonderzeichen) erscheint.
[/quote]
Das deckt sich mit meinen Erfahrungen:
"Dann drauf gekommen:
nach der Umstellung auf ANSI tatsächlich auch mal einen Umlaut eingegeben und dann abgespeichert.
Siehe da: ANSI bleibt erhalten."
Da habe ich ja auch gleich am Anfang einen Umlaut eingegeben.[/quote]
Ich habe es gelesen. Ich bin aber nicht sicher, ob wir behaupten können, daß nicht in ANSI abgespeichert wird, genauer gesagt bin ich ziemlich sicher, daß beim Speichern die ANSI-Kodierung erfolgt.
Nach meinen Beobachtungen wird zwar in ANSI gespeichert, aber der Bug tritt nur beim Lesen auf. Ich kann das mit dem Speichern aber nur indirekt erkennen, denn ich weiß nicht, woran man eine im ANSI-Format gespeicherte Textdatei informationstechnisch (Dateistruktur, einleitende Bits, was auch immer) erkennt. Ich sehe nur: Wenn ich den Inhalt einer KaLoMa-Datei, bei der die Umlaute erst nach 1024 Byte auftreten, in Wordpad öffnen, kopiere und in Notepad einfüge (und dann natürlich die Umlaute aufgrund der direkten Texteingabe zu sehen sind) und dann in Notepad mit ANSI-Format abspeichere, dann wird diese Datei in KaLoMa richtig gelesen und die Umlaute richtig angezeigt. Was ja wohl zwingend voraussetzt, daß Notepad die Datei im ANSI-Format gespeichert hat.
Jenseits dieser Schlußfolgerung, die das Abspeichern durch Notepad betrifft, kann ich daher mit 100% Sicherheit (nur) sagen, daß Notepad beim Lesen/Öffnen einer Datei ungeachtet des Formats/Kodierung der Datei Umlaute und Sonderzeichen bzw. die festgelegte ANSI-Kodierung ignoriert, wenn der erste Umlaut/Sonderzeichen erst nach dem 1024. Byte auftritt.
Wenn nur als ANSI gelesen (oder gespeichert) würde, wenn überhaupt irgendwo in der Datei ein Umlaut/Sonderzeichen auftaucht, dann würde ich das zwar immer noch als Bug ansehen (weil explizit beim Speicher vorgegeben), aber MS könnte und würde das als "stringent" und "logisch" verteidigen: ANSI-Format nur bei Bedarf und Bedarf nur wenn Umlaute/Sonderzeichen vorkommen.
Aber der tatsächliche Bug ist ja, daß [i][b][u]in den ersten 1024 Byte[/u][/b][/i] ein Umlaut/Sonderzeichen vorkommen muß! Es hilt nichts, wenn nach den ersten 1024 "normalen" Zeichen 100 oder 1.000 Sonderzeichen vorkommen.
[quote]Man kann ja eine "Default"-Txt Datei anlegen mit z.B.:
[code]rem ö[/code]
am Anfang.[/quote]
Wie geschrieben hatte ich das getan mit der dafür vorgesehenen Datei "template.txt" im Ordner c:\windows\shellnew. Früher, also noch ANSI Standard war, sollte diese (leere) Datei im UTF-8-Format gespeichert bewirken, daß Notepad eine/die neue Datei als UTF-8-Datei öffnet. Einzutragen in der Registry:
[code]Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.txt\ShellNew]
"FileName"="template.txt"
[/code]
Mit Win11 bzw. UTF-8 als Standard und ANSI als Format dieser template.txt funktioniert das aber nicht - also in Hinblick auf das Wunschformat ANSI.
Gestern konnte ich feststellen (bzw. meine mich so zu erinnern): Solange diese Datei leer ist wird das ANSI Format der Datei ignoriert. Hat sie einen Inhalt, wird diese template.txt-Datei regulär als Textdatei geöffnet. Steht innerhalb der ersten 1024 Byte ein Umlaut/Sonderzeichen, wird auf ANSI-Kodierung umgeschaltet. Andernfalls eben nicht und auch danach erscheinende Umlaute werden nicht richtig angezeigt.
Heute: Die template.txt-Datei wird insgesamt ignoriert. Keine Ahnung wieso.
[quote]Bin jetzt dazu übergegangen, den alten Editor (also nicht die Store App) wieder als Standard Editor zu implementieren.
Dazu werden bei mir bei einer Neuinstallation u.a. folgende Registry-Einträge vorgenommen:
[code]
;Restore Old Classic Notepad on Windows 11
[HKEY_CLASSES_ROOT\Applications\notepad.exe]
"NoOpenWith"=-
[HKEY_CURRENT_USER\Software\Microsoft\Notepad]
"fWindowsOnlyEOL"=dword:00000000
"fPasteOriginalEOL"=dword:00000000
"ShowStoreBanner"=dword:00000000
"iDefaultEncoding"=dword:00000001
[/code][/quote]
Bei mir ebenso plus zahlreiche weitere Einträge.
[quote]
[code]
[HKEY_CLASSES_ROOT\*\shell\Mit Notepad öffnen\command]
@="notepad.exe %1"
"Icon"="C:\\Windows\\System32\\notepad.exe"[/code]
[/quote]
Fehlt bei mir.
[quote]
[code]"iDefaultEncoding"=dword:00000001[/code] setzt übrigens ANSI als Standard.[/code]
[url]https://www.querrum.de/querbeet/Notepad-ANSI-encodierung-Voreinstellung-aendern.html[/url]
[/quote]
Wie ich bereits dazu geschrieben haben: Das gilt nicht (mehr) für Windows 11 bzw. dessen Notepad. Probiere es aus, es funktioniert leider nicht.