dedlfix: txt-Datei includen - Formatierung u. Sonderzeichen

Beitrag lesen

Tach!

UTF-8 ist normal/universalkompatibel (ohne Anführungszeichen).
OK ...
Angenommen, ich speicher in UTF-8 (setzt der Editor ein BOM?):

Das musst du deinen Editor befragen. Manche setzen eine, wie der MS-Notepad, manchne bieten ein Speichern mit und ohne an.

Der Server hat sicherlich keine Probleme ...

Es kann Probleme geben. Die BOM ist ein Zeichen (zumindest aber 3 Bytes bei UTF-8), die vor einem öffnenden <?php stehen und damit die Ausgabe starten. Auch beim Einfügen in andere Dokumente ist dieses Zeichen zu berücksichtigen, denn dann muss es raus, weil es irgendwo in der Mitte keinen Sinn mehr ergibt.

Was aber passiert, wenn die Seite gespeichert wird? Wird die Original-Datei in ihrer Codierung immer so übernommen?

Es gibt kein "Original". Jeglicher Text muss in irgendeiner Form der Kodierung auf Bytes abgebildet werden. Man kann zwischen den Kodierungen beliebig hin und her konvertieren (solange sie alle die im Text enthaltenen Zeichen kodieren können) und der Text bleibt so "original" wie er ist.

Meine nicht (berichtigt mich, wenn doch) und ein Laie weiß gar nicht, was UTF-8 ist, wird also nicht manuell switchen (was für das Speichern unter htm ja eh nicht geht)?

Ob der Laie oder der Fachmann beim Speichern Mist macht, spielt keine Rolle. Es gibt keinen "Mach-dass-es-richtig-wird"-Algorithmus. Es gibt leider auch kein Kennzeichen für Dateien, dass den verarbeitenden Programmen sagen könnte, diese oder jene Kodierung solle doch beim Speichern genommen werden. Bei Textdateien gibt es auch keine Kennzeichnung, welche Kodierung vorliegt. Es gibt nur diverse Indizien, aus denen man die Kodierung erraten kann. Eine BOM wäre ein Indiz (was aber wie oben erwähnt auch problematisch sein kann). Dass UTF-8-Sequenzen drin vorkommen, wäre ein weiteres Indiz. Allerdings sind diese Sequenzen nicht eineindeutig. Die Bytes können rein theoretisch auch in anderen Kodierungen in derselben Reihenfolge auftreten und dort eine andere Bedeutung haben. Bei 1-Byte-Kodierungen der ISO-8859-Familie ist es ohne Kenntnis der Sprache des Textes und einer statistischen Wahrscheinlichkeit oder der menschlichen Intelligenz nicht wirklich möglich, die verwendete Kodierung zu erraten. Einige Texteditoren können anhand der Indizien die Zeichenkodierung nur mehr oder weniger gut erraten. Sind gültige UTF-8-Sequenzen drin, wird es wohl UTF-8 sein. Wenn nicht, wird es wohl eine ISO-8859-x oder eine Windows-xxxx sein, die das Betriebssystem als Voreinstellung hat. Irrtümer nicht ausgeschlossen.

Es gibt jedenfalls für Textdateien derzeit (und in Zukunft wohl auch nicht) keine andere sichere Lösung, als sich um die korrekte Kodierung beim Lesen und Speichern selbst zu kümmern.

dedlfix.