Problem mit dem Zeichensatz
Hallo.
In meinem Board wurde heute eine Frage gestellt, zu der ich keine Antwort weiß und die wahrscheinlich auch kein anderer meiner Stammbesucher beantworten kann. Ich habe ihn nicht gebeten die Frage selbst hier zu stellen weil ich fürchte dann die Antwort nicht zu sehen zu bekommen.
Es geht um die Seite
http://mpgsilberjungs.mp.funpic.de/album/mpg-silberjungs/slides/mpg...Wie man im Quellcode nachlesen kann, ist mit
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1">
der Zeichensatz korrekt auf den mitteleuroäischen Zeichensatz festgelegt.
Weiter unten liest man im Quellcode
Der Bär-lin aus Berlin: Dem MPG hat er Glück gebracht.
In der Seite erscheint der Text als
Zitat:
Der Bär-lin aus Berlin: Dem MPG hat er Glück gebracht.
Dank der Zeichensatzeinstellung sollten die Umlaute imho richtig wiedergegeben werden. Das Problem tritt in allen Browsern auf, in denen ich getestet habe (IE3, IE4, IE5, IE6, NN7, NN8, FF1, FF1.5, FF2, Opa7, Opa8, Opa9). Da das Problem auch im IE3 auftritt, kann das imho nicht mit irgendwelchen Scripten zusammenhängen. Wenn man den Quellcode speichert und dann die Kopie im Browser aufruft, tritt der Fehler nicht auf!
Ich bin ratlos. Natürlich kann wahrscheinlich weder ich noch der ursprüngliche Fragesteller etwas an dem Fehler ändern. Aber ich möchte wissen was eigentlich falsch ist bzw. warum der Fehler auftritt.
Antwort schreiben
Antwort 2 von Massaraksch vom 13.05.2019, 23:30 Options
Mir fällt auf, wenn ich auf UTF-8 (Unicode) stelle (FF2/IE6), dann wirds korrekt angezeigt.
Und wenn ich mir die "mpg005.html" mal direkt mit wget auf den Rechner hole und mit einem Editor anschaue, dann sind auch da die "komischen" Zeichen drin.
Massaraksch
Antwort 3 von Massaraksch vom 13.05.2019, 23:33 Options
Übrigens auch bei "Doppelklick für Geschwindigkeitsänderung".
Massaraksch
Antwort 4 von Massaraksch vom 13.05.2019, 23:36 Options
Auch bei der "impg002.html" so. Womit werden denn die HTMLs "produziert"?
Da ich ja mit "wget" schon die "kaputten" Dateien kriege...
Massaraksch
Antwort 5 von Friedel vom 14.05.2019, 00:50 Options
Was ist wget? Wenn ich die Dateien im Browser betrachte und dann den Quellcode betrachte, sind die Dateien OK. Wenn ich die Dateien abspeichere, sind die Dateien OK. Wenn ich die lokal gespeicherten Dazeien im Broser betrachte, werden sie auch richtig dargestellt.
Die Dateien werden von einem Script von Funpic erzeugt. Dieses Script wird speziell fürBilderschows angeboten und ist auch nur dafür verwendbar.
Antwort 6 von Friedel vom 14.05.2019, 00:57 Options
Ich war (wie fast immer) mit dem IE unterwegs. Wenn ich dort auf "Quelltext anzeigen" anklicke, bekomme ich den Quelltext angezeigt wie ich es oben beschrieben habe. Das ist unabhängig davon ob ich als Quelltexteditor Notepad oder Textpad verwende.
Wenn ich mit dem FF unterwegs bin, zeit der mit schon im Quellcode die falschen Zeichen an.
Ich versuche mal die Seite mit GetRight zu saugen. Mal sehen was dabei raus kommt. Ist wget sowas ähnliches wie GetRight?
Antwort 7 von Friedel vom 14.05.2019, 01:06 Options
Wenn ich die Seite mit GetRight sauge und dann im Editor betrachte, ist der Quellcode OK. Da steht also "Der Bär-lin aus Berlin: Dem MPG hat er Glück gebracht." Aber wenn ich diese lokale Kopie der Seite im Browser betrachte, tritt der Fehler wieder auf. Aber damit bin ich schon mal einen Schritt weiter. Ich lösche mal so lange Teile der Seite bis der Fehler weg ist. So muss ich ja irgendwann auf die Ursache stoßen.
Antwort 8 von Friedel vom 14.05.2019, 01:13 Options
Jetzt bin ich noch ratloser als vorher. Wenn ich die Datei, die ich mit GetRight gesaugt habe, in Textpad öffne, sehe ich dass dort die richtigen Umlaute stehen. Wenn ich die Datei im Browser betrachte, werden die Zeichen falsch dargestellt. Wenn ich ich den Quellcode unverändert im Texteditor neu abspeichere, steimmen die Umlaute natürlich auch in dieser kopie. Aber diese Kopie wird im Browser korrekt dargestellt.
Antwort 9 von Friedel vom 14.05.2019, 01:46 Options
Wenn ich die beiden Dateien mit einem Hexeditor vergleiche, stelle ich fest, dass eine der Dateien am Anfang zusätzlich die 3 Zeichen EF BB BF enthält. Das entspricht den Buchstaben ï » ¿ . Diese Zeichen werden aber in Notepad, Textpad und FireFox nicht angezeigt. Mit diesen Dateien funktioniert die Datei korrekt. Ohne diese Zeichen werden die Umlaute falsch dargestellt.
Antwort 10 von Supermax vom 14.05.2019, 07:59 Options
Diese 3 Bytes sind der sogenannte "Byte Order Marker". Das gibt bei UTF-codierten Texten an, welche Codierung (UTF-8, UTF-16 Little Endian oder UTF-16 Big Endian) verwendet wird.
Mit welchem Editor erstellst du denn deine Seiten? Bei den meisten vernünftigen HTML- und Texteditoren kannst du entweder beim Speichern oder global einstellen, welche Codierung (ISO-8859-1 oder UTF8) beim Speichern verwendet werden soll. Verwende hier dieselbe Codierung wie in deinem META-Tag angeben. Alternativ kannst du auch alle Umlaute und Sonderzeichen durch die vordefinierten HTML-Zeichennamen ersetzen, also z.B. "ä" durch "ä", dann hast du kein Problem mit der Codierung.
Antwort 11 von Friedel vom 14.05.2019, 11:26 Options
Ich kenne keinen einzigen Editor in dem man sowas machen kann. Ich benutze meist Textpad. Ich habe aber auch Phase5. Bei beiden Editoren ist mir keine Einstellmöglichkeit für sowas bekannt.
Wenn ich meine Seiten mit einem Hexeditor öffne, kann ich feststellen, dass meine Seiten diese Zeichen nicht enthalten. Meine Seiten werden richtig dargestellt. Die Problemseiten enthalten die Zeichen auch nicht und werden falsch dargestellt. Deine Erklärung leuchtet mir deshalb nicht ein. Aber jedenfalls habe ich jetzt ein paar Suchbegriffe, mit denen ich vielleicht weitere Infos finde. Vielen Dank.
Antwort 12 von Supermax vom 14.05.2019, 11:38 Options
Schau dir mal
PSPad an, das kann man zwischen ISO-8859-1 und UTF-8 umschalten und auch festlegen, ob bei Unicode-Codierungen die 3 Markierungsbytes am Anfang geschrieben werden sollen oder nicht.
Außerdem bietet der Editor Syntax-Highlighting für HTML, CSS, JavaScript, PHP etc. und auch die Möglichkeit, Dateien direkt aus dem Editor per FTP zu übertragen.
Antwort 13 von Friedel vom 14.05.2019, 13:20 Options
Danke nochmal für die Erklärungen. Ich habe inzwischen auch bei Textpad in den Optionen die Möglichleit (für jeden Dateityp einzeln) "Schreiben Sie UTF-8 BOM" zu aktivieren oder zu deaktivieren gefunden. Ganz habe ich die Sache noch nicht verstanden, aber dazu muss ich wohl noch etwas mehr lesen. Ich weiß jetzt zwar, wozu die Zeichen da sind und woher der Fehler kommt, aber mir ist nicht (mehr) klar warum alle Seiten, die ich erstellt habe, ohne diese Zeichen funktionieren.
Antwort 14 von Massaraksch.na vom 14.05.2019, 13:21 Options
Sorry, konnte gestern Abend nicht weitermachen... Partnerin kam geschafft von Spätschicht und da heißts dann "Supportnet aus - Frau hat Priorität!" ;o)
"wget" ist ein von Unix/Linux bekanntes Tool (auch für Win erhältlich), um Dateien direkt per HTTP-Protokoll auf der Kommandozeile herunterzuladen.
Wie gesagt, wenn ich die HTMLs direkt per "wget" (ähnlich wie mit FTP) als Datei vom Server hole, dann stehen da statt Umlauten eben irgendwelche Unicode-"Krakel" (siehe z.B. Antw. 3) drin.
Wenn man den Quelltext in einem Browser speichert, dann hat man ja vielleicht schon nicht mehr das "Original" sondern evtl eine vom Browser veränderte Version.
Zitat:
Die Dateien werden von einem Script von Funpic erzeugt.
Ich denke mal, da sollte man ansetzen...
Massaraksch (nicht angemeldet)
Antwort 16 von Friedel vom 15.05.2019, 15:45 Options
Danke für die Antworten. Ich habe inzwischen ausreichend Lesematerial gefunden, sodass der ursprüngliche Fragesteller sein Problem beheben konnte und ich mir das entsprechende Grundwissen aneignen konnte. Die einzige Frage, die jetzt noch offen ist, ist die Frage wozu man die Dateien in UTF-8codieren soll. All die Probleme, die ich dank meinem neuen Knowhow jetzt lösen kann, entstehen ja nur durch diese Codierung. So hat auch der Fragesteller seine Dateien jetzt nicht mehr in UTF-8 codiert und jetzt funktioniert alles wunschgemäß.
Antwort 17 von Supermax vom 15.05.2019, 16:59 Options
Aufgrund des geringen Wertebereichs von 32-255 (0 bis 31 sind für Steuerzeichen wie Zeilenvorschub, Tab etc. reserviert) reicht der normale ISO-8859-1 Zeichensatz nicht mehr aus, um alle nationalen Sonderzeichen darzustellen. ISO-8859-1 beinhaltet die Zeichen der meisten mittel- und westeuropäischen Länder, deutsche Umlaute, französische Akzente etc. Um z.B. auch kyrillische Buchstaben oder Sonderzeichen aus den östlichen Nachbarländern darstellen zu können, muß man entweder für die Seite eine andere Codierung verwenden (dann kann man keine deutschen Umlaute etc. mehr darstellen), oder man verwendet gleich UTF-8, was eine kompakte Codierungsform für
Unicode ist. Unicode hat einen Wertebereich von 32 bit = ca. 4 Milliarden Zeichen, und auch wenn aus Gründen der Kompatibilität und der internen Codierung ein großer Teil dieses Wertebereichs unbenutzt ist, so bleiben doch genügend Werte übrig, um fast alle bekannten Schriftzeichen (auch chinesische, japanische, koreanische, thailändische etc. Schriftzeichen) abbilden zu können.
Windows ab NT aufwärts (also NT, XP, Vista) verwendet intern 16-bit Unicode für die Zeichendarstellung, wohingegen frühere Windows-Versionen nur mit der jeweiligen 8-bit Codepage arbeiten.
Antwort 18 von Friedel vom 15.05.2019, 21:06 Options
Aber Unicode kann man doch auch ohne UTF-8 verwenden. Wozu braucht man UTF-8. Bei all der Leserei konnte ich keinen einzigen Vorteil finden. Sieh dir z.B. al auf meiner Homepage die Seite
http://www.friedels-home.com/index.htm?/Unicode/codetable008.htm und die vielen Folgeseiten an. All diese Seiten sind nicht in UTF-8 codiert und es werden dort alle (!) darstellbaren Zeichen aufgelistet. Ich gehe davon aus, dass auch bei UTF-8-codierten Seiten das jeweilige Zeichen nur dann dargestellt werden kann, wenn es auf dem jeweiligen PC installiert ist. Wo ist also der Vorteil? Oder brauche ich die Zeichen nicht mehr zu maskieren, wenn ich in UTF-8 codiere?