Henry: UTF-8 abgespeichert aber Ansi erkannt *beantwortet

Beitrag lesen

Hallo,

Warum weiß ein Editor nicht im Vorfeld wie eine Datei formatiert ist?

Dateien haben keine externen Metadaten, in denen solche Informationen wie die Zeichenkodierung hätten eingefügt sein können. Textdateien haben auch keinen Datenblock intern, um Metadaten angeben zu können.

Ja an so was hatte ich gedacht, aber wenn ich das jetzt richtig verstanden habe, dann hätte alles was man am Binärcode einer textbasierten Datei ändert, eine Auswirkung auf deren Inhalt. Keine seperaten Anweisungen zur Identifizierung möglich. Hört sich für mich nach Überraschungseier an ;-) und hätte ich jetzt nicht so erwartet. Dachte eher jede Datei hätte versteckte Infos, die keine Auswirkung auf den Inhalt haben.

Und so existieren lediglich ein paar Insellösungen, um eine Zeichenkodierung anzugeben. In HTML gibts ein Meta-Element, das ziemlich am Anfang notiert werden muss, und auch nur deshalb richtig gelesen werden kann, weil man annimmt, dass eine zu ASCII kompatible Kodierung verwendet wird.

Was natürlich nichts bringt, wenn ich in bei einer Ansi-Datei UTF8 im <Meta> angebe.

Abspeichern mit BOM kann dein Problem lösen. Aber es kann auch zu anderen Problemen führen, wenn das empfangende/lesende System keine BOM erwartet.

Genau, da hatte ich schon vor Jahren schlechte Erfahrungen mit einfachen Textdateien, die im Windowseditor immer dieses BOM bekommen. Weiß nicht mehr genau was das Problem war, aber irgendwas mit mehrsprachlichen Texten innerhalb MySql.

Stell deine Editor so ein, dass er per Default UTF-8 speichert.

Das tut er, bzw. alle die ich getestet habe. Nur eben beim öffnen zeigen die wieder Ansi an, darum geht's ja.

...deshalb kein Fehler, wenn der Editor das nicht als UTF-8 erkennt. Es endet dann aber mit ungewollter Kodierung, wenn er hinzukommende Zeichen oberhalb U+007F als ISO-8859-irgendwas/ANSI speichert.

Genau.

Erst mal vielen Dank für die Antworten hier. Offensichtlich hilft da wirklich nur ansifremde Zeichen einzufügen, mach ich jetzt bei jeder HTML/PHP/JS/CSS Datei. Da kann ich es ja schön auskommentieren, problematischer wird's bei einfachen Textdateien, wo ich nichts auskommentieren kann/darf. Aber gut, kein Weltuntergang, einfach im Hinterkopf behalten.

Gruss
Henry