Codiere ich kaufmännisches Und-Zeichen in & lt; a href ... & gt ;?
Ich Schreibe code, der automatisch generiert HTML -, und ich möchte es zu codieren, die Dinge richtig zu.
Sagen, ich bin generieren Sie einen link auf folgende URL:
http://www.google.com/search?rls=en&q=stack+overflow
Ich gehe davon aus, dass alle Attribut-Werte HTML-kodiert. (Bitte korrigiert mich wenn ich falsch Liege.) Das bedeutet also, dass wenn ich habe die oben genannte URL in einen Anker-tag, sollte ich encode das kaufmännische und-Zeichen als &
wie diese:
<a href="http://www.google.com/search?rls=en&q=stack+overflow">
Ist das richtig?
Kommentar zu dem Problem
mögliche Duplikate von Welche Zeichen eine URL ungültig?
@CiroSantilli: das ist über die tatsächliche URL-Zeichenfolgen; dies ist über Sie, wie sind Sie codiert, wenn Sie erscheinen in der HTML-Attribute.
InformationsquelleAutor der Frage JW. | 2010-09-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, ist es. HTML-entities sind Analysierte innerhalb von HTML-Attributen, und eine verirrte
&
schaffen würde, eine Mehrdeutigkeit. Deshalb sollte man immer schreiben&
statt nur&
innen alle HTML-Attribute.Sagte, nur
&
und Zitate müssen codiert werden. Wenn Sie spezielle Zeichen, wieé
in Ihrem Attribut, brauchen Sie nicht zu Kodieren, jene zu befriedigen, die HTML-parser.Früher war es der Fall, dass die URLs benötigt Besondere Behandlung mit nicht-ASCII-Zeichen, wie
é
. Sie hatte zu Kodieren, die mit Prozent-entweicht, und in diesem Fall würde es geben%C3%A9
, denn Sie wurden definiert durch RFC 1738. Jedoch, RFC 1738 wurde abgelöst durch RFC 3986 (URIs, Uniform Ressource Identifiers) und RFC 3987 (IRIs, Internationalized Resource Identifiers), auf denen die WhatWG basiert seine Arbeit zu definieren, wie Browser sich Verhalten soll, wenn Sie sehen, eine URL mit nicht-ASCII-Zeichen in es seit HTML5. Es ist deshalb jetzt sicher auch auf die nicht-ASCII-Zeichen in URLs, Prozent-codiert oder nicht.InformationsquelleAutor der Antwort zneak
Durch die aktuellen offiziellen HTML-Empfehlungen, das kaufmännische und-Zeichen müssen maskiert werden, z.B. als
&
in Kontexten wie diesen. Jedoch Browser, die es nicht benötigen, und die HTML5-CR schlägt vor, dieses eine Regel, so dass spezielle Regeln gelten, die in Attribut-Werten. Aktuelle HTML5-Validatoren veraltet sind in dieser Hinsicht (siehe Fehlerbericht mit Kommentaren).Bleibt es möglich, zu entkommen kaufmännische und-Zeichen in Attributwerten, aber abgesehen von der Validierung mit den aktuellen tools, gibt es keine praktische Notwendigkeit, Ihnen zu entkommen, in
href
Werte (und es ist ein kleines Risiko, Fehler zu machen, wenn Sie beginnen, Ihnen zu entkommen).InformationsquelleAutor der Antwort Jukka K. Korpela
Ja, Sie sollten konvertieren
&
zu&
.Diese html-validator tool von W3C ist hilfreich für Fragen wie diese. Es wird Ihnen sagen, die Fehler und Warnungen für eine bestimmte Seite.
InformationsquelleAutor der Antwort Randy Greencorn
Ja, das ist richtig.
InformationsquelleAutor der Antwort casablanca