Zur Navigation

Umlaute im Anker

1 Martin

Hallo,
bei Selfhtml steht, dass ein Anker keine Umlaute haben soll, also z.B.:

<a href="#häuser" title="...">...</a> springt auf
<a name="häuser">...</a>

Kann man das jetzt mit Entities maskieren oder besser durch "ae" ersetzen? Zeichensatz ist ISO-8859-1.

Habe einerseits gelesen, dass man in URLs keine Entities verwenden soll, andererseits aber auch die Empfehlung, ein "&" in der Url eines externen Links entsprechend zu maskieren und anders geht es ja wohl auch nicht. Habe es jetzt jedenfalls so gemacht.

Das "ae" ist sicher problemlos, aber ob Google das KW dann noch erkennt, ist fraglich.

Was mache ich da am besten?

Martin



Martin

18.09.2007 11:28

2 Jörg Kruse

In der W3C Recommendation zu HTML 4.01 gibt es für das name Attribut eine entsprechende Soll-Regelung:

Zitat von W3C
Anchor names should be restricted to ASCII characters.

Ich würde auch aus Usability-Gründen ä mit ae umschreiben - so mache ich es auch hier im Forum.

Google erkennt die Gleichwertigkeit von ae und ä - einfach mal "haeuser" dort in die Suche eingeben ;)

18.09.2007 11:41

3 Martin

Tatsächlich, G scheint diese deutsche Besonderheit zu berücksichtigen. Hätte ich nicht gedacht, wo es doch sonst immer auf jeden Buchstaben ankommt. Ist das generell so?

Bei dem "&" in einem normalen ausgehenden Link lässt es sich aber nicht vermeiden, oder?
Gibt z.B. Artikel von mir, die in Artikelverzeichnissen in recht umständlichen und langen URLs mit einem "&" irgendwo drin verewigt wurden. Wenn ich das nicht maskiere, bekomme ich einen Validierungsfehler.

Martin

Martin

18.09.2007 12:29

4 Jörg Kruse

Du meinst die "&" im Query String, d.h. vor dem "#"? Die lassen sich natürlich nicht vermeiden, da sie zur Verknüpfung von Parametern benötigt werden.

Die Maskierung als "&amp;" muss im HTML-Quelltext vorgenommen werden, da sie sonst als HTML-Steuerzeichen interpretiert werden könnten. Wenn man auf einen so maskierten Link klickt, wandelt der Browser für den Aufruf der betreffenden Seite die "&amp;" aber selbsttätig wieder in "&" um.

18.09.2007 12:49

5 Martin

Zitat von Jörg
Du meinst die "&" im Query String, d.h. vor dem "#"? Die lassen sich natürlich nicht vermeiden, da sie zur Verknüpfung von Parametern benötigt werden.


Die Maskierung als "&amp;" muss im HTML-Quelltext vorgenommen werden, da sie sonst als HTML-Steuerzeichen interpretiert werden könnten. Wenn man auf einen so maskierten Link klickt, wandelt der Browser für den Aufruf der betreffenden Seite die "&amp;" aber selbsttätig wieder in "&" um.

Ob da eine Raute davor stand, weiß ich nicht mehr, aber ich vermute mal, es war so. Jedenfalls war es so eine lange dynamische URL und das "&" kam relativ weit hinten.

Der Browser hatte den Link schon ausgeführt (glaube ich), aber beim Validieren kam halt eine Fehlermeldung.


Martin

18.09.2007 13:51

6 Jörg Kruse

Ja, dynamische URLS zeichnen sich durch den sogenannten Query String aus. Dieser wird durch ein ? eingeleitet und kann mehrere Paramater nach dem Muster x=y enthalten, die durch & verbunden werden. Nach dem Query String kann u.U. noch ein Anker folgen, eingeleitet durch ein #

aber beim Validieren kam halt eine Fehlermeldung

Ja, das Validieren betrifft aber nur die Form der URLs in HTML. Für sich genommen, d.h. außerhalb von HTML, ist eine unmaskierte URL natürlich gültig - also wenn du die URL direkt in die Adresszeile des Browser eingibst, dann sollten die & nicht maskiert werden :)

18.09.2007 14:17

7 Martin

Alles klar, danke.



Martin

18.09.2007 15:09

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]