Hi,
ich habe mal eine grundsätzliche Frage. Ich habe es so als best-practice gelernt, das man deutsche Umlaute (z.B. ö, ä, ü, ß,..) aber auch Sonderzeichen (&) in HTML Entities umwandelt. Auch wenn der Charset im Header als UTF-8 festgelegt ist.
soso ... und warum?
Dort kamen aber nur Fragen zurück warum ich denke das ich das machen muss.
Ja, diese Frage stellt sich mir auch. Warum sollte man hergehen und Umlaute verstümmeln? Nein, das ist absolut unnötig, ich würde jedem empfehlen, diesen Unfug bleiben zu lassen.
Nur die Sonderzeichen des jeweiligen Kontextes (also die, die eine besondere Bedeutung haben) müssen natürlich dem Kontext entsprechend maskiert werden. In HTML sind das beispielsweise die Zeichen '<', '>', '&', und innerhalb von Attributwerten ggf. Anführungszeichen. Alles andere, insbesondere Umlaute, griechische, kyrillische oder arabische Schriftzeichen sind keine Sonderzeichen.
Heutzutage reicht den Browsern doch die Charset Deklaration im Header aus um alles einwandfrei darzustellen.
Ja, vorausgesetzt die angegebene Codierung ist mit der tatsächlich verwendeten identisch. Schlecht ist, wenn man z.B. ISO-8859-1 verwendet, dann aber behauptet, es sei UTF-8.
Nun ist meine Frage, was gibt es für Gründe Umlaute/Sonderzeichen heutzutage trotzdem umzuwandeln?
Für Umlaute? Keine.
Für Sonderzeichen? Siehe oben.Ciao,
Martin
Hallo Martin,
Danke für deine ausführliche Antwort. Das Kontext bezogene Sonderzeichen, z.B. Attribute entsprechend kodiert werden müssen ist selbstverständlich. Dann werde ich mir Zukunft die Umwandlung der Umlaute wohl sparen. :)
Vielen Dank und Grüße,
Tony