/Unicode

Z Brain-wiki

TI:WTBD/Unicode

Standard kodowania obejmujący (w założeniu) wszystkie systemy pisma funkcjonujące na świecie.

Jest szereg terminów o zbliżonym, ale nie dokładnie równoważnym znaczeniu: Unicode, UCS-4 (Universal Character Set), ISO/IEC 10646, opisujących to uniwersalne kodowanie. UCS definiuje zestaw znaków, przyporządkowując każdemu objętemu zestawem znakowi opisową nazwę i jednoznaczną wartość kodu (liczbę całkowitą dodatnią). Unicode dodatkowo specyfikuje własności takie, jak reguły sortowania, tzw. normalizacji, mapowanie wielkich liter w małe, kierunkowość pisma itp.

Zasadniczą częścią UCS jest BMP (Basic Multilingual Plane), obejmująca znaki o kodach mieszczących się w 2 bajtach. To wystarcza dla większości języków świata (najistotniejszym wyjątkiem jest chiński). Przy czym nawet dla języków orientalnych, najczęściej występujące w rzeczywistych tekstach ideogramy mieszczą się w BMP. Teoretyczny zakres kodów przewidziany przez normę sięga do 0x10FFFF czyli dziesiętnie: 1 114 111. Znaczna część z tych wartości nie jest dotąd wypełniona.

Unicode (UCS) określa repertuar znaków i tablicę kodów, ale w zasadzie nie stosuje się bezpośrednio jako kodowanie (w sensie przekładu pisma na strumień bajtów). Takie bezpośrednie zastosowanie wymagałoby przeznaczenia 4 bajtów na każdy znak, co dla większości języków świata byłoby wysoce niepraktyczne.

W szerszym stosowaniu są następujące kodowania związane z UCS:

  • UCS-2: 2 bajty na znak, ograniczenie do BMP
  • UTF-16: rozszerzenie UCS-2 pozwalające na wyjście poza BMP
  • UTF-8: o największym znaczeniu w praktyce, jeśli chodzi o pisma posługujące się rozszerzeniami alfabetu łacińskiego.