Unicode jest nazwą dla sposobu kodowania znaków w różnych językach narodowych (polski, rosyjski, turecki, chiński ...) do binarnej formy komputerowej.
Poprzednio wszystkie znaki były zapisywane w jednym bajcie, to znaczy, że w ten sposób było możliwe kodować ogółem 256 różnych znaków. Pierwsze 128 znaków jest przepisanych przez standard i tworzy tzw.
tabelę ASCII w której jest zdefiniowane przyszeregowanie wszystkich podstawowych małych (a-z) i dużych (A-Z) liter alfabetu łacińskiego bez znaków diakrytycznych (tzn. narodowo zależne znaki), wszystkich cyfr (0,1-9), znaków specjalnych takich jak przecinek, średnik, dwukropek oraz wiele innych.
Pozostałe 128 możliwości jest przeznaczonych do kodowania znaków specjalnych dla poszczególnych języków narodowych. Dla języków środkowoeuropejskich są to na przykład znaki á, č, ü, itd., dla języka rosyjskiego są to na przykład znaki ф, и, б, ъ, itd. Niestety, takich znaków specjalnych dla wszystkich języków na świecie jest zbyt dużo i nie można ich zakodowanie do pozostałych 128 możliwości. Z tego powodu powstały strony kodowe dla poszczególnych grup języków. Na przykład kodowanie
Win-1250 dla wszystkich języków stosowanych w Europie środkowej, kodowanie
Win-1251 dla wszystkich znaków Cyrilicy, itd. W ten sposób zostało rozwiązane zapisywanie tekstów dla poszczególnych języków, jednak nie było możliwe napisanie tekstu zawierającego znaki nawzajem "niekompatybilnych" języków.
Problem kodowania wszystkich znaków we wszystkich językach został rozwiązany przez wprowadzenie kodowania
Unicode (dokładniej patrz serwer konsorcjum Unicode
http://www.unicode.org). To kodowanie umożliwia poprawnie zakodować wszystkie znaki na świecie. Problem został rozwiązany w ten sposób, że znaki nie są zapisywane w jednym bajcie (tylko 256 możliwości) lecz są zapisywane do 2 bajtów (tzn. 65536 możliwości). Ten sposób kodowania oznacza się identyfikatorem
UTF-16.
Zaletą
UTF-16 jest łatwe zarządzanie wszystkimi znakami, jego mankamentem jest dwukrotna wielkość i niekompatybilność z
tabelą ASCII. Taki mankament przejawia się zwłaszcza przy zapisywaniu do plików tekstowych. Z tego powodu został jeszcze zestandardyzowany następny sposób kodowania
Unicode, który posiada zmienną wielkość zapisu dla poszczególnych znaków. Znaki
tabeli ASCII są zapisywane w 1 bajcie, pozostałe znaki są zapisywane kolejno w 2 lub więcej bajtach (po 1. bajcie można rozpoznać, czy wystąpi kolejny bajt). Ten sposób kodowania oznacza się identyfikatorem
UTF-8. Jest stosowane przeważnie dla plików tekstowych (XML, HTML). Do bezpośredniej pracy w pamięci komputera tekst taki jest transformowany do
UTF-16, ponieważ praca z tekstem w tym kodowaniu jest szybsza.
Kodowanie
UTF-16 oraz
UTF-8 jest stosowane w systemie PROMOTIC od wersji
7.1.0 i dlatego można wytwarzać aplikacje w różnych językach bez konieczności przełączania stron kodowych lub konieczności specjalnych wersji językowych SO
Windows.
UTF-16 jest stosowane podczas biegu aplikacji (teksty w panelach, w skryptach, itd.),
UTF-8 jest stosowane w plikach tekstowych (np. pliki tekstów XML dla
Makro wyrażenie $.text).