Hallo Jan, das wird hier ja richtig kompliziert. Am Sonntag 21 August 2005 22:28 schrieb Jan Ritzerfeld:
Am Sonntag, 21. August 2005 22:11 schrieb Dieter Kluenter:
(...). Gut, es gibt kein HyperText Markup Language 'Protokoll', sondern HTML ist nur ein Subset von SGML. d.h. es gibt nur Empfehlungen und Richtlinien.
[...]
Soweit ich das verstehe ist nach 4.1. für "HTML over HTTP" iso-8859-1 der default.
[...]
Sicherlich hat Helga ihre Dokumente durch Quanta versaut, aber das Hauptproblem liegt darin, dass sie 8 Bit Zeichen nicht durch Special Characters darstellt und dadurch in den Konflikt zwischen iso-8859-1 und UTF-8 bei der Darstellung gerät.
Die üblichen HTML-Entities hatte ich (natürlich) drin, gab aber trotzdem Zeichensalat.
Sie hätte sich den Ärger durch entities ersparen können, ja. Aber es spricht nichts dagegen Latin1 oder UTF8 zu benutzen solange man diesen Zeichensatz dann auch deklariert. Außer der Webserver schickt einen gegenteiligen Content-Type mit, der auch im HTML-Dokument nicht überschrieben werden kann (siehe Liste unter http://www.w3.org/TR/html4/charset.html#h-5.2.2).
Ahja, interessant. Das erklärt den Zeichensalat auf meiner eigenen Webpage. Das ist als Zeichensatz 8859-15 im Header deklariert. Ich habe eine bestehende Datei angefasst und sie mit quanta bearbeitet, dessen Zeichensatz utf8 war. Schaut man in der internen Vorschau die Datei dann an, sieht sie OK aus. Der Fehler macht sich erst im Browser bemerkbar oder dann, wenn man die Datei schon auf den Webspace hochgeladen hat.
Naja, jetzt hat sie den Salat und bei dem Zeichensatzwirwar wird sie die 8-Bit-Zeichen nicht einfach durch deren entities ersetzt bekommen, bevor sie den Zeichensatz ihrer HTML-Dokumente festgestellt hat. Und das sollte praktisch mit dem von mir gefundenen perl-Einzeiler zu bewerkstelligen sein, weil UTF-8 eine bestimmte Syntax voraussetzt, die ein Latin1-Dokument normalerweise nicht aufweist.
Den Einzeiler muss ich noch probieren. Leider beschränkt sich dieses Problem nicht auf HTML, sondern auch auf exotischere Formate wie *.po, das sind Übersetzungsdateien. Oder, ich habe irgendeine beliebige Datei und weiß beim besten Willen nicht mehr, wie sie kodiert ist. Ich möchte sie aber mittels recode umkodieren. recode macht aus einer 8859-15-Datei gerne eine utf8-Datei, aber die Ausgangsannahme sollte stimmen. Ich kann euch das leider nicht besser erklären, weil ich von der Materie nur einen Teil verstehe. Helga -- ## OpenSource-Werkstatt in Reutlingen -- http://www.eschkitai.de/ ## Etikette - Nein Danke? -- http://www.suse-etikette.de.vu/ ## Wer hilft? -- http://hsqldb.sourceforge.net/web/openoffice.html ## Vote for: http://bugs.kde.org/show_bug.cgi?id=77109