Another common error occurs when including a
URL which contains an ampersand ("&"):
<!-- This is invalid! --> <a href="foo.cgi?chapter=1§ion=2©=3&lang=en">...</a>
This example generates an error for "unknown entity
section" because the "&" is assumed to begin an entity reference. Browsers often recover safely from this kind of error, but real problems do occur in some cases. In this example, many browsers correctly convert
©=3 to
©=3, which may cause the link to fail. Since
⟨ is the
HTMLentity for the left-pointing angle bracket, some browsers also convert
&lang=en to
〈=en. And one old browser even finds the entity
§, converting
§ion=2 to
§ion=2.
To avoid problems with both validators and browsers, always use
& in place of
&when writing
URLs in
HTML:
<a href="foo.cgi?chapter=1&section=2&copy=3&lang=en">...</a>
Note that replacing
& with
& is only done when writing the
URLin HTML, where "&" is a special character (along with "<" and ">"). When writing the same
URLin a plain text email message or in the location bar of your browser, you would use "&" and
not "&". With
HTML, the browser translates "&" to "&" so the Web server would only see "&" and not "&" in the query string of the request.
No comments:
Post a Comment