Meta-Tags HTML-encoden?
Jan Schulze
- html
0 Bio0 Thomas Mell0 Gagamehl
0 molily
Hallo,
muss man die Inhalte von Meta-Tags HTML-encoden (z.B. ü=ü)? Ich konnte darüber nirgends eine klare Aussage finden.
Ich persönlich tippe auf nein. Begründung: Die HTML-Seite ist als ANSI- oder UTF-8-Text abgespeichert, die beide nationale Sonderzeichen beinhalten. Wenn ich einen "Sonderzeichen-Begriff" bei Google eingebe, dann entnehme ich dem Such-Sring, dass Google ihn auch als UTF-8-Text interpretiert. Beispiel: Die Suche nach "überlegen" führt zu folgendem Google-Suchstring in der Adressleiste: http://www.google.de/search?q=%C3%BCberlegen&ie=UTF-8&hl=de&meta=
Folglich werden zwei UTF-8-Strings verglichen und ein überlegen als Meta-Tag würde nicht gefunden werden.
Andererseits sieht man die Tags im Web doch häufig HTML-encoded, so z.B. auch bei SELFHTML (Stefan Münz).
Kann mir da jemand weiterhelfen???
Danke.
Sup!
Man muss in Links auch die & als & schreiben - von daher tippe ich auf "Ja". Steht aber auch im HTML-Standard, kostenlos erhaeltlich beim freundlichen W3C oder kostenpflichtig, aber in deutsch, im gut sortierten Buchhandel.
Gruesse,
Bio
Hallo,
muss man die Inhalte von Meta-Tags HTML-encoden (z.B. ü=ü)? Ich konnte darüber nirgends eine klare Aussage finden.
Es kommt ganz drauf an mit welcher Zeichensatzkodierung dein Dokument verarbeitet wird. Deutsche Umlaute sind (soweit mir bekannt) nur bei ISO-8859-1 erlaubt.
Prinzipiell bestimmt die Zeichensatzkodierung, welche Zeichen in einem Dokument erlaubt sind, egal ob diese in Meta-Tags oder sonst wo stehen (außer Tag/Attributnamen).
In UTF-8 werden Umlaute in 2 Byte umgewandelt (ein Zeichen kann in UTF-8 bis zu 4 Byte beanspruchen), dort haben Umlaute im Klartext nichts verloren.
Um bei Deinem Beispiel zu bleiben; ein ü besteht in UTF-8 aus den beiden Bytes HEX(C3 BC).
Folgende Möglichkeiten hast du nun:
1. Du kodierst Dein Dokument in ISO-8859-1 und darfst das ü in Klartext schreiben.
2. Bei UTF-8 musst Du HEX(C3 BC) schreiben.
3. In beiden Fällen kannst Du auch das Entity ü benutzen.
Entities sind unabhängig von der verwendeten Zeichensatzkodierung, da in [X]HTML spezifiziert (fest eingebaut).
Einer Suchmaschine ist es egal welche der Möglichkeiten Du benutzt. Intern wandelt z.B. Google zuerst alles nach UTF-8 um und vergleicht dann. Deshalb ist dort ein ü in ISO-8859-1 das Selbe wie ein ü oder HEX(C3 BC) in UTF-8.
Viele Grüße
Thomas Mell
Hallo
In UTF-8 werden Umlaute in 2 Byte umgewandelt (ein Zeichen kann in UTF-8 bis zu 4 Byte beanspruchen), dort haben Umlaute im Klartext nichts verloren.
Hä? Was hat das mit der variablen Bytezahl zu tun?
Um bei Deinem Beispiel zu bleiben; ein ü besteht in UTF-8 aus den beiden Bytes HEX(C3 BC).
Folgende Möglichkeiten hast du nun:
- Du kodierst Dein Dokument in ISO-8859-1 und darfst das ü in Klartext schreiben.
- Bei UTF-8 musst Du HEX(C3 BC) schreiben.
- In beiden Fällen kannst Du auch das Entity ü benutzen.
4. Das Dokument im Texteditor als UTF-8 abpeichern.
Ist das nicht die komfortabelste Methode?
Gruß
Hallo,
Hä? Was hat das mit der variablen Bytezahl zu tun?
Nichts, sollte nur eine kurze Erläuterung sein wie UTF-8 Umlaute codiert.
- Das Dokument im Texteditor als UTF-8 abpeichern.
Ist das nicht die komfortabelste Methode?
Richtig, mit UTF-8 kann man wohl so ziemlich alle Zeichensätze der Welt ersetzen (wenn ich das richtig verstanden habe). Das Dumme an der Sache ist nur, das nicht alle Browser UTF-8 beherrschen (vor allen Dingen ältere).
Grüße
Thomas Mell
Hallo,
muss man die Inhalte von Meta-Tags HTML-encoden (z.B. ü=ü)? Ich konnte darüber nirgends eine klare Aussage finden.
Nein. Für meta-Elemente gilt dasselbe wie für andere CDATA-Attribute, darin können theoretisch und praktisch Umlaute ohne Maskierung vorkommen.
Ich persönlich tippe auf nein. Begründung: Die HTML-Seite ist als ANSI- oder UTF-8-Text abgespeichert, die beide nationale Sonderzeichen beinhalten. Wenn ich einen "Sonderzeichen-Begriff" bei Google eingebe, dann entnehme ich dem Such-Sring, dass Google ihn auch als UTF-8-Text interpretiert.
Was hat das zu bedeuten? Google kann die Suchbegriffe in vielen verschiedenen Kodierungen entgegennehmen. Zum Beispiel in ISO-8859-1, http://www.google.at/search?q=�berlegen&ie=iso-8859-1.
Beispiel: Die Suche nach "überlegen" führt zu folgendem Google-Suchstring in der Adressleiste: http://www.google.de/search?q=überlegen&ie=UTF-8
Folglich werden zwei UTF-8-Strings verglichen und ein überlegen als Meta-Tag würde nicht gefunden werden.
Google rekodiert sowieso alle intern an dem Vergleich beteiligten Strings und gleicht deren Kodierung aneinander an, daher ist es egal, a) wie die GET-Daten (d.h. die Suchbegriffe in der URL) kodiert sind, b) welche Kodierung die Webseiten im Google-Index nutzen. Das heißt, wenn die Input-Encoding UTF-8 ist, findet man auch Dokumente, auf denen »überlegen« in ISO-8859-1 kodiert ist. Umgekehrt gilt dasselbe. Hinzu kommt, dass beim Indizieren eines Dokuments freilich alle numerischen Zeichenreferenzen und Entity-Referenzen wie ü aufgelöst werden. Das heißt, ein Dokument, das »überlegen« enthält, wird intern mit demselben Stichwort verknüpft wie ein Dokument, das »überlegen« in UTF-8 oder ISO-8859-1 oder anders kodiert enthält.
Ich weiß nicht recht, worauf du hinauswillst. Suchmaschinen erledigen dies alles von selbst.
Andererseits sieht man die Tags im Web doch häufig HTML-encoded, so z.B. auch bei SELFHTML (Stefan Münz).
Das ist eine Konvention, die ihre Ursprung in bestimmten Browserfehlern hatte, die vor vielen Jahren akut waren. Heutzutage muss man nicht faktisches US-ASCII schreiben, sondern kann durchaus die 8-Bit-Zeichensätze bzw -Kodierungen ausschöpfen und Umlaute somit direkt ins Dokument (auch als Attributwerte) schreiben.
Mathias