wake-up-neo.com

Wofür wird & amp verwendet?

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&current=true
63
blue-sky

& ist HTML für "Beginn einer Zeichenreferenz".

& ist die Zeichenreferenz für "Ein Et-Zeichen".

&current; 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).

82
Quentin

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

3
Samjus

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 &amp 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 "&amp;" verwenden. Mit HTML wird der Der Browser übersetzt "&amp;" in "&", sodass der Webserver nur "&"_ angezeigt wird. und nicht "&amp;" in der Abfragezeichenfolge der Anforderung.

Hoffe das hilft : )

2
Jim

Das ist ein großartiges Beispiel. Wenn &currentin einen Textknoten zerlegt wird, wird er in ¤t konvertiert. Wenn in einen Attributwert geparst wird, wird es als &current analysiert.

Wenn Sie &current in einem Textknoten haben möchten, sollten Sie &amp;current in Ihr Markup schreiben.

Die blutigen Details sind hier: http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference

0
Alohci