Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Opis kodowania znaków Unicode

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 języki były zapisywane do 1 bajta, tzn. ż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, wszystkich cyfr (0,1-9), znaków specjalnych takich jak przecinek, średnik, dwukropek i dużo 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 jest możliwe 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 do 1 bajta (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ć, że 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 i UTF-8 jest stosowane w systemie PROMOTIC od wersji 7 i z tego powodu 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).

Przejście na Unicode umożliwiają jednak tylko SO Windows 2000 i wyższy. Z tego powodu dla starszych SO Windows 98/Me jest dostępna wersja Promotic7A. Wersja ta jest identyczna z wersją Promotic7, nie pracuje jednak z tekstami UTF-16 i nie można z tego powodu w prosty sposób wytwarzać aplikacje na przykład w języku rosyjskim.

© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice