Zbiór znaków dokumentu

Pytania

Po co jest 'Zbiór znaków dokumentu' XML i HTML i jak się ma do kodowania, które zastosowano w dokumencie?

Odpowiedź

Dla uproszczenia i w zgodzie z powszechnie stosowaną praktyką, kiedy mówimy o Unicode w rozdziale "FAQ" to mamy na myśli zbiór znaków zdefiniowanych przez Unicode i ISO/IEC 10646.

Zbiór znaków dokumentu lub zbiór znaków podstawowych XML i HTML (z wersji 4.0) jest Zbiorem Znaków Uniwersalnych (UCS) zdefiniowanych przez standardy ISO/IEC 10646 i Unicode, które są identyczne.

Oznacza to, że model logiczny opisujący jak XML i HTML są przetwarzane jest opisany pod względem zbioru znaków Unicode.

Nie oznacza to, że wszystkie dokumenty HTML i XML muszą być kodowane w Unicode, ale oznacza to, że dokumenty te mogą zawierać jedynie znaki zdefiniowane przez Unicode. Zauważ, że zbiór znaków i kodowanie są dwoma różymi rzeczami - na przykład, cały zestaw Unicode może być kodowany na więcej sposobów, np: UTF-8, UTF-16 i UTF-32. Każde kodowanie można wykorzystać w dokumencie tak długo jak jest ono właściwie zadeklarowane i jest ono podzbiorem Unicode. (Byłoby niezmiernie trudno znaleźć kodowanie, który nie jest podzbiorem.)

Z drugiej strony, używanie kodowania Unicode gdzie tylko jest to możliwe jest dobrym pomysłem, ponieważ upraszcza to wiele aspektów internacjonalizacji sieci i jest powszechnie wspierane przez oprogramowanie HTML i wszystkie procesory XML.

Istotnym rezultatem zbioru znaków dokumentu jest to, że wartości numerycznych referencji znaków (jak ǵ i ǵ DLA ŁACIŃSKIEJ MAŁEJ LITERY G Z KRESKĄ) są interpretowane jako znaki Unicode - bez względu na rodzaj kodowania zastosowanego w dokumencie. Jest to powszechną przyczyną wielu błędów pośród tych, którzy nie rozumieją różnicy pomiędzy kodowaniem i zbiorem znaków.

Dodatkowe informacje

W praktyce wszystkie znaki Unicode mogą być zastosowane wszędzie w XML i HTML. Na przykład, niektóre znaki są wyłączone z użycia jako nazwy znaczników elemetów a niekóre znaki kontrolne nie mogą być stosowane w treści. Zauważ, że XML 1.1 pozwala na używanie o wiele większej liczby znaków stosowanych do nazw znaczników elementów niż XML 1.0.

Informacja dotycząca historii

HTML 2.0 zdefiniował, że wszystkie znaki w dokumencie HTML mają być interpretowane w odniesieniu do ISO 8859-1 (także zwanyms ISO Latin 1), ale również ogłosił, że wszystkie przyszłe wersje HTML będą stosować viz. Unicode (lub ISO 10646), co oznacza, że dostępna będzie większa część znaków z całego świata.

Dyskusje na temat właściwego używania Unicode na Internecie ( RFC 2130, kwiecień 1997 i RFC 2070, styczeń 1997) nie zostały zakończone, kiedy wyszedł HTML 3.2 (styczeń 1997), dlatego wprowadzanie Unicode do HTML musi poczekać na HTML 4.0 (grudzień 1997).