Gunnar Bittersmann: Sonderzeichen

Beitrag lesen

Hello out there!

">" ist in HTML ein Sonderzeichen. Sonderzeichen müssen kodiert werden. Immer und überall.

<Loriot>Ach. Ach was.</Loriot> ;-)

„Autoren, die das »<«-Zeichen im Text einsetzen wollen, sollten »&lt;« (ASCII dezimal 60) verwenden, um mögliche Verwechslungen mit dem Beginn eines Tags (öffnender Begrenzer des Start-Tags, start tag open delimiter) zu vermeiden. Analog sollten Autoren im Text »&gt;« (ASCII dezimal 62) anstelle von »>« benutzen. Sie gehen damit Problemen aus dem Wege, die in älteren Benutzerprogrammen auftreten können. Dies kann dann passieren, wenn »>« innnerhalb von in Anführungszeichen stehenden Attributwerte auftaucht und ein Benutzerprogramm darin fälschlicherweise das Ende eines Tags (schließender Tag-Begrenzer) erkennt.“ [HTML401 §5.3.2]

Das ist valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
   <head>  
    <title>Test</title>  
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
  </head>  
  <body>  
    <p>>foo</p>  
  </body>  
</html>

Das auch:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
   <head>  
    <title>Test</title>  
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
  </head>  
  <body>  
    <p>< foo</p>  
  </body>  
</html>

Nur das nicht (element "FOO" undefined):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
   <head>  
    <title>Test</title>  
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">  
  </head>  
  <body>  
    <p><foo</p>  
  </body>  
</html>

Allerdings: Sonderzeichen _sollten_ kodiert* werden. Immer und überall.

See ya up the road,
Gunnar

* Mit kodiert meintest du als Entity-Referenzen oder NCR geschrieben werden? Kodiert werden sie ja immer: wahlweise in UTF-8, ISO 8859-1, ... ;-)

--
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)