Hello, Guest the thread was viewed4k times and contains 34 replies

last post from Retrofan at the

Encoding für einen C64-Markdown-Editor im Bitmap-Mode [aus: Neues OS/GUI]

  • Ich bitte um Verzeihung, aber ich habe diese ganze Diskussion nicht verstanden.

    Es ging einfach um einen imaginären Texteditor, der möglichst unkomplizierten Austausch mit modernen Systemen ermöglicht.


    Meine Definition von "möglichst unkompliziert" beinhaltet schlicht, dass sich der Nutzer beim Laden/Speichern keinen Kopf um das Encoding machen muss, sondern einfach speichert. Daraus hat sich diese Diskussion entwickelt.

    1.) Selbstverständlich können die gebräuchlichen Texteditoren unter Windows ISO-8859

    2.) ISO-8859 ist schon seit Jahrzehnten der Standard bei der Textcodierung.

    Windows hat noch nie ISO-8859 unterstützt, es würde mich wundern wenn Texteditoren das dort als Standard nutzen würden. Windows CP-1252 ist in sehr großen Teilen mit ISO-8859 identisch, bietet aber eben mehr Zeichen als der ISO-Standard, und das Euro-Zeichen liegt woanders.

    4.) Für rein westeuropäische Texte ist ISO-8859 die seit Jahrzehnten einfachste und platzsparendste Codierung, und es gibt überhaupt keinen Grund, davon abzuweichen. Wozu sollte man für deutsche Umlaute zwei Bytes benötigen, wenn es auch mit nur einem geht? Das macht keinen Sinn.

    Die Idee ist ja auch nicht, dass "wir" davon abweichen, sondern das andere Systeme das tun (und bspw. UTF-8 als Standard-Encoding benutzen) - und wenn wir möglichst unkompliziert Daten mit diesen Systemen austauschen wollen, müssen wir eben UTF-8 unterstützen - beim Laden/Speichern von Texten in einem Texteditor. Niemand will UTF-8 auf dem C64 als Standard-Encoding nutzen.

    Dieser Thread versucht nun auszuloten, wie man das leere Papier am besten bemalen kann, so daß Geschwindigkeit und Benutzerfreundlichkeit akzeptabel sind. Dazu gehört die Verwendung von ISO-8859 als Zeichencodierung, da sie platzsparend ist und alle wesentlichen im Rahmen eines C64-OS zu erwartenden Zeichen abdeckt.

    Es waren sich m.E. mal alle einig, dass "Datei-Management" im weitesten Sinn eine der Hauptaufgaben eines noch zu entwickelnden OS sein würde. Das setzt m.E. zwingend die Möglichkeit voraus, auch PETSCII anzeigen zu können - völlig unabhängig vom gewählten Darstellungsmodus. Wenn du also nicht zwei Zeichensätze im Speicher halten willst, wirst du um ein bisschen Codepage-Gehacke nicht herumkommen.

  • Ich habe diesen Screenshot im Netz gefunden:



    Da ist zu erkennen, dass Notepad zumindest unterschiedliche Encodings (Menüpunkt: Encoding) unterstützt (und das Encoding auch am unteren Textrand anzeigt). Was sich in der Aufzählung hinter "more ..." verbirgt, kann ich leider nicht sagen. Aber schon bei den aufgeführten ist ja Unicode dabei und wir wissen jetzt ja, dass im Falle eines ISO 8859-1-Textes damit alles korrekt angezeigt werden würde. Und mit ein wenig Glück verbirgt sich hinter "More ..." sogar noch (wie in den ganz simplen Mac-Editoren) CP1252 oder Latin-9 (ISO 8859-15).

    Das ist aber nicht der Windows eigene Editor. Das ist Notepad2.

  • Meine Definition von "möglichst unkompliziert" beinhaltet schlicht, dass sich der Nutzer beim Laden/Speichern keinen Kopf um das Encoding machen muss, sondern einfach speichert.

    Das wird leider nicht funktionieren. Den einen Standard für Textdateien gibt es nicht, auch wenn UTF-8 inzwischen auf vielen Systemen verbreitet ist. Da aber ein Texteditor aller Voraussicht nach sowieso keine Zeichen außerhalb ISO-8859 (oder meinetwegen Windows-1252) verarbeiten wird und normale Texteditoren durchaus in der Lage sind, mit ISO-8859 umzugehen, dürfte ein generelles Speichern als UTF-8 keinen nennenswerten Vorteil bieten und sollte optional bleiben. Ein ernsthaftes Problem kann ich dabei auch nicht wirklich erkennen. Bei geladenen Texten wird als Defaultwert der alte Zustand übernommen. Bei neuen Texten kann der Benutzer das Format sowieso nach Belieben auswählen.

    Windows hat noch nie ISO-8859 unterstützt

    Windows-1252 geht aber direkt auf ISO-8859 zurück und hat lediglich ein paar Zeichen hinzugefügt, weswegen es im allgemeinen als ISO-8859 kompatibel angesehen wird. Meinetwegen kann man auch Windows-1252 als Grundlage nehmen. Ist doch im Prinzip völlig wurscht. Beide sind bis auf die neuen Zeichen nahezu deckungsgleich. Da ein Zeichensatz für den C64 256 Zeichen umfassen soll, kann man selbstverständlich auch die Zeichen $80..$9f von Windows-1252 mit aufnehmen. Wichtig ist allein, daß man eine 8-Bit-Codierung verwendet, die international etabliert ist und auch heute noch Gültigkeit hat.

    wenn Texteditoren das dort als Standard nutzen würden

    Tut mir leid, aber ich empfinde das als Haarspalterei. Windows-1252 umfaßt ISO-8859 und ist bis auf kleine Ausnahmen dazu kompatibel. Ja, das Eurozeichen kam später hinzu, denn damals[tm] zu Amigazeiten gab es noch keinen Euro. Aber deswegen zu sagen, daß die in ISO-8859 enthaltene Codierung für westeuropäische Zeichen in Texteditoren nicht als Standard benutzt würde, geht an der Sache vorbei.

    Die Idee ist ja auch nicht, dass "wir" davon abweichen, sondern das andere Systeme das tun (und bspw. UTF-8 als Standard-Encoding benutzen) - und wenn wir möglichst unkompliziert Daten mit diesen Systemen austauschen wollen, müssen wir eben UTF-8 unterstützen - beim Laden/Speichern von Texten in einem Texteditor.

    Wenn ein Texteditor ernsthaft nur UTF-8 unterstützt, kannst Du ihn am besten gleich wegschmeißen. Was den Dateifilter für einen möglichen Texteditor anbelangt, so halte ich diesen für normal. Darüber muß man nicht diskutieren. Dafür reicht der Hinweis:

    "Leute, denkt bitte daran, daß Ihr beim Texteditor eine Auswahl bereitstellt zwischen 8-Bit-codierten Texten und heutzutage besonders auf Internetseiten beliebten UTF-8-Texten. Danke."


    [Posting-Split]

  • dürfte ein generelles Speichern als UTF-8 keinen nennenswerten Vorteil bieten und sollte optional bleiben.

    Natürlich hat niemand die Absicht, "generell als UTF-8 zu speichern". Es ging um das Lesen (und Wiederabspeichern) von Texten, die bereits als UTF-8 vorliegen. Nichts weiter.

    Tut mir leid, aber ich empfinde das als Haarspalterei. Windows-1252 umfaßt ISO-8859 und ist bis auf kleine Ausnahmen dazu kompatibel. Ja, das Eurozeichen kam später hinzu, denn damals[tm] zu Amigazeiten gab es noch keinen Euro. Aber deswegen zu sagen, daß die in ISO-8859 enthaltene Codierung für westeuropäische Zeichen in Texteditoren nicht als Standard benutzt würde, geht an der Sache vorbei.

    Windows-1252 enthält eine ganze Reihe zusätzliche Zeichen, die für Autoren - im Unterschied zu Programmierern - von Bedeutung sind und deswegen auch genutzt werden: Gedankenstrich, Auslassungszeichen, (deutsche) öffnende und schließende Anführungszeichen. Da es im hier diskutierten Beispiel um Texte (s. "Markdown Editor") nicht um Code ging, ist deswegen der Unterschied zwischen 1252 und 8859-15 zumindest bei der Konvertierung nach ISO-8859 von Belang. In der Gegenrichtung ist das tatsächlich zu vernachlässigen.

    Wenn ein Texteditor ernsthaft nur UTF-8 unterstützt, kannst Du ihn am besten gleich wegschmeißen.

    Wo hast du nur dieses ganze Zeugs her? Niemand hat das gesagt?

    Richtig. Für die Anzeige eines 1541-Verzeichnisses wäre ein PETSCII-Zeichensatz sinnvoll. Aber warum soll man dafür keine zwei Zeichensätze im Speicher halten?

    Weil das schon wieder 2 KB Speicher sind? PETSCII müsste ja ständig verfügbar sein, nicht wie von dir impliziert nur im Desktop: ein Dateidialog - wie auch immer der aussieht - ist ja Teil des OS, nicht Teil des Desktops.


    Ich hab's mir gerade bei Wikipedia noch mal angesehen: Neben 96 ASCII-Zeichen und 96x ISO-8859 würde man noch 64 PETSCII-Grafikzeichen benötigen - das würde also exakt in einen Zeichsatz passen. Allerdings unterscheiden sich ASCII und PETSCII auf den ersten Blick dann immer noch auf acht Positionen (Unterstrich statt Linkspfeil u.ä.), für diese acht Zeichen fehlt der Platz.


    Ich würde zur Lösung des Problems wahrscheinlich zwei C64-spezifische Untermengen von ISO machen und dann mit PETSCII koppeln. "Westeuropa", "Osteuropa" oder so. Je nachdem welche Sprache der Benutzer einstellt, wird dann der entsprechende Zeichensatz samt zugehöriger Codepage genutzt. Ein "ë" oder "Ý" wird auf dem C64 sowieso kaum jemand eingeben oder sehen wollen/müssen.

  • [Posting-Split]

    Selbstverständlich können die gebräuchlichen Texteditoren unter Windows ISO-8859.

    Für rein westeuropäische Texte ist ISO-8859 die seit Jahrzehnten einfachste und platzsparendste Codierung, und es gibt überhaupt keinen Grund, davon abzuweichen.

    Danke. Mich wundert auch, dass jetzt auf einmal behauptet wird, Windows (oder Linux oder macOS) könne seine alten Texte aus den 8-Bit-Zeichensatz-Zeiten nicht mehr darstellen, sondern ausschließlich UTF-8. Und auch jeder Webbrowser, den ich kenne, kann eine Litanei von 8-Bit-Encodings herunterbeten:



    Warum, wenn es angeblich außer UTF-8 nichts mehr gibt?


    Ob ein Texteditor irgendwelche Dateifilter anbietet zur Konvertierung, ist für das OS irrelevant. Schön, falls es einen solchen Texteditor geben sollte, aber was hat das mit dem OS und der GUI zu tun?

    Das habe ich mich auch ein wenig gefragt. Durchaus ein interessantes Thema aber hier dann doch etwas zu umfangreich diskutiert. Aber wie ich schon sagte, Korodnys Konverter nähme ich für den Markdown-Editor, sollte es einen geben, natürlich gerne. Auch wenn er sonst im OS/GUI (eigentlich unser Hauptthema) keine Rolle spielen wird.


    da Unicode - im Gegensatz zu ISO - nur eine (gigantische) Codepage ist, aber kein Encoding.

    Spitzfindigkeit, um nicht zugeben zu müssen, "auch mal" falsch gelegen zu haben. Wir sprachen anfangs von Unicode und der "Ähnlichkeit" in den ersten 255 Positionen zu ISO 8859. Und dann fingst du mit UTF-8 an, was aus meiner Sicht auf dem C64 keine große Rolle spielen wird. Wenn es der Beendigung dieser leidigen Randthemen-Diskussion dient, dann habe ich meinetwegen auch unrecht gehabt. Können wir dieses Unicode vs ISO vs UTF-8 hiermit gut sein lassen? Es hat nichts (mehr) mit dem eigentlichen Thema zu tun.


    Das ist aber nicht der Windows eigene Editor. Das ist Notepad2.

    Dann hatten die Autoren im Thread, in dem ich den Screenshot gefunden habe, schon den Fehler gemacht, denn dort war die Frage, wie man in Windows NotePad das Standard-Encoding ändert. Gibt es denn niemanden hier, der noch Windows verwendet und das mal nachgucken könnte? Es ist bei der Netzrecherche nicht hilfreich, dass gefühlt jeder 2. Windows-Text-Editor Notepad-irgendwas heißt.

  • Gibt es denn niemanden hier, der noch Windows verwendet und das mal nachgucken könnte? Es ist bei der Netzrecherche nicht hilfreich, dass gefühlt jeder 2. Windows-Text-Editor Notepad-irgendwas heißt.

    In den Menüs vom Notepad ist dazu nichts zu finden, allenfalls unter "Format" die Schriftart und dort das "Script" ("westlich", "mitteleuropäisch" usw.) Ob es eine Registry-Möglichkeit gibt, hab ich jetzt nicht geschaut.


    Arndt

  • und dort das "Script" ("westlich", "mitteleuropäisch" usw.)

    Das klingt aber irgendwie schon nach Encoding, oder?


    Ansonsten hat das Programm ja vielleicht auch eine Art Auto-Erkennung? UTF-8 und ISO 8859-1 kann man wohl oft an den ersten Bytes erkennen. Und es stellt sich natürlich auch die Frage, wer unter Windows wirklich Notepad verwendet, wenn er einen Text bearbeiten will. MS Word kann ja z.B., wie ich per Screenshot gezeigt habe, mit verschiedenen Encodings umgehen.


    (Komisch, dass sich anscheinend andere Systeme damit out-of-the-box so viel schwerer tun als macOS). :gruebel

  • Ich kann hier ja mal einen Text mit Windows 1252-Encoding erzeugen und hochladen. Ich bin gespannt, ob ein aktuelles Windows-Notepad das wirklich nicht mehr korrekt darstellen kann – das wäre ja traurig.


    Aber jetzt mal an die Windows-User: was nutzt ihr denn wirklich als Textverarbeitung/Editor? Notepad?

  • Ich kann hier ja mal einen Text mit Windows 1252-Encoding erzeugen und hochladen. Ich bin gespannt, ob ein aktuelles Windows-Notepad das wirklich nicht mehr korrekt darstellen kann – das wäre ja traurig.


    Aber jetzt mal an die Windows-User: was nutzt ihr denn als Textverarbeitung/Editor? Notepad?

    Als Textverarbeitung (Briefe, Berichte etc.pp) -> LibreOffice Writer.

    Als Editor: %SystemRoot%\system32\notepad.exe

  • Gibt es denn niemanden hier, der noch Windows verwendet und das mal nachgucken könnte?

    Notepad++ und seit neustem VisualStudioCode sind die wohl die am meisten genutzten Editoren unter Windows für Notizen und Quellcode aller Art, daher ein Quasistandard. Beim NotePad selbst habe ich keine Möglichkeit gefunden die Enkodierung umzustellen, da wird nur angezeigt welche Steuerzeichen für den Zeilenumbruch verwendet werden und um welche Kodierung es sich gerade handelt beim angezeigten Text.

  • und um welche Kodierung es sich gerade handelt beim angezeigten Text.

    OK, dann kennt er zumindest Encodings (im Plural), sonst müsst er sie ja nicht anzeigen. Wenn also ein 8-Bit-codierter Standard-Text vom C64 käme, wäre halt eine Frage, ob er das Encoding erkennen würde. Und wenn er dann speichert, ob er das Encoding beibehält.


    (Aber wie gesagt, das ist ein reines Text-Editor-Thema und hat nur wenig mit dem Encoding auf Systemebene zu tun. Ich werde deshalb versuchen, diesen ganzen Komplex auszulagern, damit der OS- und GUI-Thread wieder frei wird für OS- und GUI-Sachen.)