Gibt es einen Unterschied im Verhalten der folgenden URL?.
Ich weiß nicht, warum der &
eingefügt wird. Macht es einen Unterschied?
www.testurl.com/test?param1=test&current=true
versus
www.testurl.com/test?param1=test¤t=true
&
ist HTML für "Beginn einer Zeichenreferenz".
&
ist die Zeichenreferenz für "Ein Et-Zeichen".
¤t;
ist keine Standardzeichenreferenz und daher auch ein Fehler (Browser versuchen möglicherweise, Fehler zu beheben, aber Sie sollten sich nicht darauf verlassen).
Wenn Sie eine Zeichenreferenz für ein reales Zeichen (z. B. ™
) verwendet haben, erscheint es (™) in der URL anstelle der gewünschten Zeichenfolge.
(Beachten Sie, dass Sie abhängig von der verwendeten HTML-Version möglicherweise eine Zeichenreferenz mit einem ;
beenden müssen, weshalb &trade=
als ™ behandelt wird. In HTML 4 kann darauf verzichtet werden, wenn das nächste Zeichen ein Nicht-Word ist Zeichen (wie =
), aber einige Browser (Hallo Internet Explorer) haben Probleme damit).
HTML erkennt das & nicht, aber es erkennt &
, weil es = & in HTML ist
Ich habe mir diesen Beitrag angesehen, den jemand gemacht hat: http://www.webmasterworld.com/forum21/8851.htm
Meine Quelle: http://htmlhelp.com/tools/validator/problems.html#amp
Ein weiterer häufiger Fehler tritt auf, wenn eine URL eingefügt wird, die ein .__ enthält. Et-Zeichen ("&"):
Das ist ungültig:
a href = "foo.cgi? chapter = 1 & section = 2 & copy = 3 & lang = de"
Erläuterung:
Dieses Beispiel generiert einen Fehler für "unbekannten Entitätsabschnitt", weil Es wird angenommen, dass der
"&"
eine Entitätsreferenz beginnt. Browser häufig Beheben Sie diese Art von Fehler sicher, aber echte Probleme treten in .__ auf. manche Fälle. In diesem Beispiel konvertieren viele Browser korrekt & copy = 3 auf © = 3, was dazu führen kann, dass die Verbindung fehlschlägt. Da ⟨ist der HTML Entität für die nach links weisende spitze Klammer konvertieren einige Browser auch & lang = de zu 〈= de. Und ein alter Browser findet sogar die Entität §, Konvertierung von & section = 2 in §ion = 2.
Ziel ist es daher, Probleme zu vermeiden, wenn Sie versuchen, Ihre Website zu validieren. Sie sollten daher Ihre Et-Zeichen durch &
ersetzen, wenn Sie eine URL in Ihr Markup schreiben.
Beachten Sie, dass Sie
&
durch&
ersetzen. wird nur ausgeführt, wenn die URL in .__ geschrieben wird. HTML, wobei"&"
ein Sonderzeichen ist (zusammen mit "<" und ">"). Wann Schreiben der gleichen URL in eine Nur-Text-E-Mail-Nachricht oder in den Speicherort In Ihrem Browser würden Sie"&"
und nicht"&"
verwenden. Mit HTML wird der Der Browser übersetzt"&"
in"&"
, sodass der Webserver nur"&"
_ angezeigt wird. und nicht"&"
in der Abfragezeichenfolge der Anforderung.
Hoffe das hilft : )
Das ist ein großartiges Beispiel. Wenn ¤t
in einen Textknoten zerlegt wird, wird er in ¤t
konvertiert. Wenn in einen Attributwert geparst wird, wird es als ¤t
analysiert.
Wenn Sie ¤t
in einem Textknoten haben möchten, sollten Sie &current
in Ihr Markup schreiben.
Die blutigen Details sind hier: http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference