Im westlichen Sprachraum wird überwiegend der 8-bit-Zeichensatz "ISO 8859-1" (Latin-1, auch "Western" genannt) benutzt. Dieser Zeichensatz stimmt im Code-Nummernbereich 0 bis 127 mit dem altehrwürdigen (7-bit) ASCII-Zeichensatz überein (ASCII = American Standard Code for Information Interschange) und im Code-Nummernbereich 160 bis 255 mit dem ANSI-Zeichensatz (American National Standard Institute), wie er z.B. von Microsoft Windows verwendet wird. Für die Kennzeichnung des Zeichensatzes dient das HTML-Attribut charset, zB. charset="iso-8859-1". Für andere Sprachräume kann man andere Zeichensätze wählen, z.B. charset="Cp1253" für Griechisch; "Cp" steht für Codepage. Auch bei anderen Sprachräumen sind die Zeichen 0 bis 127 mit dem ASCII-Zeichensatz identisch.
Zeichensätze mit einem Zeichenvorrat von 256 Zeichen können mit einem 8-bit-Speicherbedarf pro Zeichen dargestellt werden, da 256 = 28. HTML ist - wie viele moderne Sprachen - auf einen 16-bit Zeichensatz ausgelegt, der im "Unicode" standardisiert ist. Damit lassen sich 216 = 65535 verschiedene Zeichen darstellen, praktisch der gesamte Zeichenvorrat aller existierenden Sprachen. Auch im Unicode stimmen die ersten 128 Zeichen mit dem ASCII-Zeichensatz überein.
In HTML wird ein beliebiges Unicode-Zeichen mit der Entität &#xxxx; dargestellt, wobei xxxx die dezimale Unicode-Nummer von 0 bis 65535 bedeutet.
Aber: Unicode wird von den Browsern MS IE 5.x und Netscape 6.x richtig unterstützt, nicht aber von Netscape 4.x, von wenigen Ausnahmen wie #0338, #0339, #0352, #0376 und #0402 abgesehen.
Man beachte weiter, dass die Anzeige eines Zeichens auch von der
gewählten Schrift abhängt,
z.B. sind die Zeichen #9658 und #9668 (gefüllte Dreiecke
nach rechts bzw. links) in den
Times- und Arial-Schriften enthalten,
nicht aber in den Courier-Schriften.
Auch die Darstellungsgröße hängt bei einigen (nicht allen!)
Zeichen von der gewählten Schrift ab, was z.B. für die
Zeichen #9650 und #9660 (gefüllte Dreiecke
noch oben bzw. unten) zutrifft.