Jump to content

HTML decimal character rendering

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Chowbok (talk | contribs) at 03:19, 5 May 2008 (clean up, Replaced: ™ →, added orphan tag using AWB). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Not all web browsers or email clients used by receivers of HTML documents, or text editors used by authors of HTML documents, will be able to render all HTML characters. Most modern web browsers are able to display many more characters than the latest versions of Microsoft Internet Explorer. This is due to different "font linking" capabilities that allow glyphs to be used from fonts according to what characters are needed and supported by the fonts on the system.

For codes from 0 to 127, the original 7-bit ASCII standard set, most of these characters can be used without a character reference. Codes from 160 to 255 can all be created using character entity names. Only a few higher-numbered codes can be created using entity names, but all can be created by decimal number character reference.

Illegal characters

HTML forbids [1] the use of the characters with Universal Character Set/Unicode code points

  • 0000 to 0008
  • 0011 to 0012
  • 0014 to 0031
  • 0127
  • 0128 to 0159
  • 55296 to 57343

These characters are not even allowed by reference. That is, you are not even allowed to write them as numeric character references. However, references to characters 0128–0159 are commonly interpreted by lenient web browsers as if they were references to the characters assigned to bytes 128–159 (decimal) in the Windows-1252 character encoding. This is in violation of HTML and SGML standards, and the characters are already assigned to higher code points, so HTML document authors should always use the higher code points. For example, for the trademark sign (™), use ™, not ™.

The characters 0009 (tab), 0010 (linefeed), and 0013 (carriage return) are allowed in HTML documents, but, along with 0032 (space) are all considered "whitespace"[2]. The "form feed" control character, which would be at 0012, is not allowed in HTML documents, but is also mentioned as being one of the "white space" characters — perhaps an oversight in the specifications. In HTML, most consecutive occurrences of white space characters, except in a <pre> block, are interpreted as comprising a single "word separator" for rendering purposes. A word separator is typically rendered a single en-width space in European languages, but not in others.