View metadata, citation and similar papers at core.ac.uk brought to you by CORE

provided by Biblioteka Cyfrowa KLF UW (Digital Library of the Formal Linguistics Department at the...

Standard 4.0. Wybrane pojęcia i terminy

Janusz S. Bień Katedra Lingwistyki Formalnej UW

Streszczenie

Ukazanie się w sierpniu 2003 r. czwartej wersji standardu UNICODE (1504 strony plus CD-ROM), dostępnego także pod adresem http://www.unicode.org, stanowi okazję do zaprezentowania wybranych aspektów tego standardu. Unicode jest ukazany na tle wcześniej stosowanych metod kodowania tekstów. Artykuł zawiera również w sposób mniej lub bardziej jawny propozycje tłumaczenie używanych w standardzie angielskich terminów na język polski.

Wprowadzenie Zgodnie z normą PN-ISO/IEC 8859-2:2001 – w praktyce równoważną odpowiedniemu fragmentowi Na wstępie warto przypomnieć różnicę między stan- standardu ECMA-94 ([7]) – i normą PN-I-10050:2002 dardem a normą. Standardy – dawniej pisane i ten sam napis kodujemy następująco: czytane standarty1, ang. standards – to specyfika- ł ą k ę cje sformułowane przez pewne organizacje lub in- stytucje. Normy – ang. legal standards – to specyfi- PN-ISO/IEC 8859-2 B3 B1 6B EA kacje sformułowane przez krajowe lub międzynaro- PN-I-10050 7D 7B 6B 7C dowe organizacje normalizacyjne, czyli przez insty- 1 2 3 4 tucje upoważnione do tego przez państwo odpowied- Żadna z wymienionych norm nie pozwala nam nimi ustawami; niektóre aspekty normalizacji krajo- zakodować np. napisu ящик. Słowo to w izo- wej i europejskiej omówiłem w artykule [2]. W skali lacji można zakodować stosując np. międzynaro- światowej działalność normalizacyjna jest podsta- dową normę ISO/IEC 8859-5:1999, w praktyce rów- wowym źródłem utrzymania znaczącej liczby osób, noważną standardowi ECMA-113 ([8]): stąd często można spotkać normy, których jedyną я щ и к racją bytu jest dostarczanie zajęcia normalizatorom; EF E9 D8 DA standardy znacznie częściej zaspokajają rzeczywiste 1 2 3 4 potrzeby ich użytkowników. Jak jednak zakodować np. w tekście lingwi- W [1] przedstawiłem krajowe, europejskie i mię- stycznym napis «słowo ящик»? dzynarodowe normy określające kodowanie tekstów Nie umożliwi tego polsko-europejska norma PN- polskich w systemach komputerowych. Tutaj po- EN 1923:2000 – ciągle jeszcze dostrzegalne są skutki dam tylko kilka przykładów kodowania polskich liter żelaznej kurtyny – ale można zastosować normę zgodnie z najnowszymi polskimi normami. PN-93/T-42118 razem z PN-ISO/IEC 2022:1996 Według programu prac normalizacyjnych na 2 lub PN-93/T-42112; te dwie ostatnie normy są w r. 2004 w marcu br. powinne były zakończyć się praktyce równoważne standardom ECMA-35 ([5]) i prace nad normą PN-ISO/IEC 6937, będącą polskim ECMA-48 ([6]). Polega to na użyciu tzw. sekwencji tłumaczeniem normy ISO/IEC 6937:2001. Według przełączających3. Jeśli założymy, że domyślnym tej normy napis łąkę kodujemy następująco (kody kodowaniem jest opisany w normie PN-93/T42109.01 znaków podajemy w zapisie heksadecymalnym): odpowiednik kodu ISO/IEC 646:1991 IRV – opisanego ł ą k ę również w standardzie ECMA-6 ([4]) – czyli po F8 BE 97 6B BE 65 prostu ASCII, to otrzymany rezultat przedstawia ł ˛ a k ˛ e tabela na następnej stronie. Choć ten sposób kodowania może wydawać się 1 2 3 4 5 6 raczej niecodzienny, jest on stosowany m.in. w X- Windows przy kopiowaniu tekstu między applika- 1 Patrz np. Ustawa z dnia 20 grudnia 1949 r. o utwo- cjami ([11]). Warto więc poświęcić mu chwilę uwagi. rzeniu Polskiego Komitetu Normalizacyjnego oraz o polskich normach i standartach (Dz.U. nr 63, poz. 403). 3 Ang. escape sequences, dosłownie sekwencje ucieczkowe; 2 Patrz http://www.pkn.pl/PPN/ProgramPracKTnr170. escape bywa tłumaczone jako unik, ale określenie sekwencje htm. unikowe nie brzmi najlepiej.

XII Ogólnopolska Konferencja Polskiej Grupy Użytkowników Systemu TEX 9 Janusz S. Bień

s ł o w o я щ и к 73 1B 2D 42 B3 6F 77 6F 20 1B 2D 4C EF E9 D8 DA 1 73 2 1B 2D 42

3 ESC G1D6 04/02 4 B3 5 6F 77 6F 20 6 1B 2D 4C 7 ESC G1D6 04/12 8 EF E9 D8 DA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Zgodnie z przyjętymi w normach zasadami w koniec lat osiemdziesiątych ubiegłego wieku rozpo- 8-bitowym zestawie znaków wyróżnia się 2 obszary częła prace nad normą ISO 10646 wprowadzającą (lewy i prawy) znaków sterujących (CL i CR) oraz wielobajtowy Uniwersalny Zestaw Znaków (Univer- 2 obszary (lewy i prawy) znaków graficznych (GL sal Character Set – UCS). Jak piszą Pike i Thomp- i GR); ich interpretacja dokonuje się dwuetapowo. son ([9]), prace te były oparte na bardzo kon- konkretną interpretację obszarów GL i GR ozna- trowersyjnych założeniach. W szczególności kod czamy odpowiednio G0 i G1. Założyliśmy, że ob- miał być 4-bajtowy, a jego rozwój zdecentralizowany szar G0, obejmujący kody od 20 do 7F, zawiera kod przez przydzielenie 16-bitowych fragmentów kodu ASCII, stąd litera s jest reprezentowana po prostu krajowym organizacjom normalizacyjnych. Złożone przez 73 (wiersz 1 w tabeli). Aby zakodować literę ł, głównie z amerykańskich firm komputerowych kon- zmieniamy odpowiednio interpretację G1. Czynimy sorcjum Unicode powstało – według Pike’a i Thomp- to za pomocą sekwencji przełączającej (wiersze 2 i 3 sona – jako protest wobec technicznych wad ISO w tabeli) składającej się z 3 znaków: znaku ucieczki, 10646. Konsorcjum szybko przedstawiło swoją wła- tzw. znaku pośredniego i znaku końcowego. Znak sną propozycję, która została opublikowana przez pośredni o akronimie G1D6 wskazuje, że zmiana in- Addison-Wesley w 1991 r. jako standard Uni- terpretacji dotyczy G1, oraz określa pewne dodat- code 1.0. W tym samym roku rozpoczęły się nego- kowe własności kodu. Bajt końcowy wskazuje na- cjacje konsorcjum Unicode z odpowiednią grupą ro- tomiast na konkretny kod zarejestrowany w utrzy- boczą ISO, które doprowadziły do porzucenia przez mywanym na zlecenie Międzynarodowej Organizacji ISO swojej pierwotnej koncepcji, oraz do dostosowa- Normalizacyjnej ISO rejestrze International Register nia repertuaru znaków Unicode do ISO 10646. Wre- of Coded Character Sets to be used with Escape Sequ- zultacie w 1993 ukazały się jednocześnie dwie pu- ences, dostępnym pod adresem http://www.itscj. blikacje: standard Unicode 1.1 i norma ISO 10646- ipsj.or.jp/ISO-IR/. Wartość 42 wskazuje kon- 1:1993, które opisywały ten sam repertuar znaków. kretnie na kod ISO-IR 101, czyli kod zarejestrowany W sierpniu 2003 r. Addison Wesley opubliko- przez ISO pod numerem 101 o nazwie Right-hand wał The Unicode Standard Version 4.0. Wersja ta Part of Latin Alphabet No.2. W tym kodzie litera opisuje repertuar znaków zgodny z planowaną na ł reprezentowana jest jako B3 (wiersz 4 w tabeli). ten sam rok publikacją normy ISO/IEC 10646, która Ponieważ G0 nie uległo zmianie, pozostałe litery jak dotąd (kwiecień 2004) nie doszła do skutku. (wiersz 5 w tabeli) są kodowane jako ASCII. Aby Numeracja wersji standardu jest trzypozycyjna. jednak zakodować litery cyrylickie, musimy znowu Pierwsza liczba oznacza wersję podstawową (ang. zmienić interpretację obszaru G1 za pomocą odpo- major), opublikowaną w książce wydanej tradycyj- wiedniej sekwencji przełączającej, tym razem z baj- nie przez Addison-Wesley i dostępnej z pewnymi tem końcowym 4C wskazującym na ISO-IR 144 czyli ograniczeniami na witrynie konsorcjum Unicode pod Cyrillic part of the Latin/Cyrillic Alphabet. adresem http://www.unicode.org. Druga liczba Mam nadzieję, że powyższe przykłady unaocz- oznacza wersję uzupełniająca (ang. minor), polega- niły niedogodności związane z kodowaniem tekstów jącą ma dodaniu dodatkowych znaków do wersji za- za pomocą kodów jednobajtowych (o 7 lub 8 bitach). sadniczej lub wprowadzeniu innych istotnych zmian, opublikowanych na witrynie konsorcjum jako raport Geneza i postać standardu Unicode techniczny. Aby uniknąć zilustrowanych wyżej problemów, Mię- Trzecia liczba, jeśli występuje, oznacza uaktu- dzynarodowa Organizacja Normalizacyjna ISO pod alnienie normatywnych lub ważnych informacyjnych

10 Bachotek, 30 kwietnia – 2 maja 2004 Standard Unicode 4.0. Wybrane pojęcia i terminy fragmentów standardu. Ostatnio takie uaktualnie- – Informacje pochodne (Derived Data): 4 nie miało miejsce w marcu 2004 r. i aktualna wer- pliki. sja standardu powinna być – w języku angielskim – – Informacje wtórne (Extracted Data): 11 wskazywana w następujący sposób: plików. The Unicode Consortium. The Unicode – Dane testowe (Test Data): 1 plik. Standard, Version 4.0.1, defined by: The Nie będziemy oczywiście omawiać tutaj szcze- Unicode Standard, Version 4.0 (Boston, MA, gółowo zawartości wszystkich tych plików. Addison-Wesley, 2003. ISBN 0-321-18578-1), as amended by Unicode 4.0.1 (http://www. Znaki piśmienne i ich kodowanie unicode.org/versions/Unicode4.0.1/ ). Pojęcie znaku piśmiennego Podstawowym poję- Charakterystyczną cechą Unicode’u jest to, że ciem standardu Unicode jest abstract character, co nie ogranicza się on – jak norma ISO 10646 – do wy- tłumaczę jako znak piśmienny, mając na myśli pier- liczenia znaków i ich reprezentacji, ale opisuje ich wotne znaczenie przymiotnika piśmienny, tj. doty- własności i zasady przetwarzania. Co więcej, naj- czący pisma. Definicja D3 ([12], s. 64) określa to ważniejsze informacje dostępne są nie tylko w po- pojęcie następująco: staci słownego opisu, ale również w postaci plików Jednostka informacji stosowana do organiza- komputerowych stanowiących integralną częśc stan- cji danych tekstowych, sterowania nimi lub dardu. Tak więc na wersję 4.0.1 składają się: ich reprezentacji. • Opis podstawowy: wspomniana wyżej ksiązka Definicja ta nawiązuje do definicji znaku (charac- opisująca wersję podstawową. ter) występującej od dawna w normach i podobnie • Opis uzupełniający : brak. jak one ma znaczenie czysto dekoracyjne – w żaden • Opis uaktualnienia: wspomniana wyżej strona sposób nie pomaga ustalić, co jest znakiem piśmien- WWW. nym w konkretnym przypadku. • Aneksy – aktualnie 6, dostępne na witrynie Uni- Definicja D3 zawiera również dodatkowe wyja- code, oznaczane UAX (Unicode Standard An- śnienia: 4 nexe) z odpowiednim numerem ; tytuły podaję • Znaki piśmienne służą do reprezentacji tekstu w swobodnym tłumaczeniu: o charakterze symbolicznym, w przeciwieństwie UAX #9 Algorytm obsługi dwukierunkowo- do tekstów o charakterze wizualnym czy aku- ści pisma (The Bidirectional Algorithm). stycznym. Chodzi więc m.in. o litery, ideografy, UAX #11 Kategoria szerokości wschodnio- cyfry, znaki interpunkcyjne itp. azjatyckiej (East Asian Width). • Znak piśmienny nie ma konkretnego wyglądu i UAX #14 Łamanie wierszy (Line Breaking nie powinien być mylony z glifem (ang. glyph). Properties). • Znak piśmienny niekoniecznie jest postrzegany UAX #15 Normalizacja znaków (Unicode przez użytkownika jako znak pisemny czy dru- Normalization Forms). karski, w szczególności nie powinien być mylony z grafemem. UAX #24 Nazewnictwo systemów pisma • (Script Names). Znaki piśmienne uwzględnione bezpośrednio w standardzie Unicode nazywamy [podstawowymi] UAX #29 Segmentacja tekstu (Text Bound- znakami Unicode’u (ang. Unicode abstract cha- aries). racter). • Rejestr znaków Unicode’u (Unicode Character • Znak piśmienny nie będący znakiem Unicode’u Database – UCD). Składa się on z kilkudzie- często może być reprezentowany przez sekwen- siętu plików tekstowych (stąd moja niechęć do cję znaków Unicode’u. dosłownego tłumaczenia database) i kilku pli- ków dokumentacyjnych w postaci czystego tek- Wymienione wyżej kryteria nie są niestety stu lub HTML. Pliki te są podzielone na nastę- ostre, dlatego najwygodniej jest przyjąć, że znaki pujące grupy: piśmienne to pojęcie pierwotne, zdefiniowane przez wyliczenie. Ich zbiór nazywamy repertuarem znaków – Dokumentacja: 5 plików. piśmiennych (ang. abstract character repertoire – – Informacje pierwotne (Core Data): 18 ACR). plików. Znaki Unicode’u spełniające powyższe warunki 4 Zgodnie z amerykańskim zwyczajem numer oznaczany to znaki właściwe (ang. normal characters, [12], jest znakiem #. s. 23). Jednak aby Unicode miał szansę przyjąć

XII Ogólnopolska Konferencja Polskiej Grupy Użytkowników Systemu TEX 11 Janusz S. Bień się w praktyce, niezbędne było zapewnienie pełnej • Współrzędne od 1000 do 1FFFF: płaszczyzna 1 zgodności z kodami będącymi w powszechnym uży- – uzupełniająca płaszczyzna wielojęzyczna (ang. ciu. W konsekwencji w standardzie występują rów- Supplementary Multilingual – SMP). nież znaki nie spełniające tych warunków, nazywane • znakami dostosowawczymi (ang. compatibility cha- Współrzędne od 2000 do 2FFFF: płaszczyzna 2 racters). – uzupełniająca płaszczyzna ideograficzna (ang. W wersji 4.0 (i 4.0.1) Unicode’u repertuar zna- Supplementary Ideographic Plane – SIP). ków piśmiennych zawiera 96 382 znaki. • Współrzędne od E000 do EFFFF: płaszczyzna Znaki i współrzędne kodowe W celu przetwa- 14 – uzupełniająca płaszczyzna specjalna (ang. rzania znaków piśmiennych przez komputer przy- Supplementary Special-purpose Plane – SSP). porządkowuje się konkretnemu repertuarowi zestaw liczb całkowitych. Liczby te nazywamy współrzęd- Formaty kodowania znaków i jednostki ko- nymi kodowymi (ang. code points) odpowiednich dowe Ze względu na budowę komputerów i urzą- znaków, znak piśmienny tak reprezentowany na- dzeń wejścia wyjścia liczby z pewnego przedziału są zywamy znakiem kodowym (ang. encoded charac- przetwarzane bardziej efektywnie niż inne – chodzi ter), a całe odwzorowanie kodowym zestawem zna- tutaj o liczby dające się zapisać w jednym bajcie, 5 ków (ang. coded character set – CCS) . który w ogólnym wypadku może być 6-, 7- lub 8- Używane we wprowadzeniu słowo kod nie jest bitowy. Takie jednostki pamięci czy transmisji na- jednoznaczne, ale kontekst wyrażnie wskazuje, kiedy zywamy jednostkami kodowymi (ang. code unit). oznacza ono kodowy zestaw znaków, a kiedy kon- Format kodowania znaków (to dość swobodne kretną współrzędną kodową. tłumaczenie ang. form – CEF) Współrzędne kodowe muszą zawierać się w to odwzorowanie współrzędnych kodowych na zbiór przestrzeni kodowej (ang. codespace), która dla Uni- sekwencji jednostek kodowych. W konkretnym for- code’u w wersji 4.0 stanowi przedział – w zapisie macie sekwencje jednostek kodowych mogą być sta- heksadecymalnym – od 0 do 10FFFF. Przestrzeń ta łej lub zmiennej długości. może być powiększana w razie potrzeby. W prostych przypadkach dla niewielkich reper- Nie wszystkie współrzędne z tej przestrzeni są tuarów znaki piśmienne są odwzorowane na poje- wykorzystane, a wśród wykorzystanych są takie, dyncze bajty 7-bitowe, jak w kodzie ASCII czy PN- które nie reprezentują znaków piśmiennych, lecz I-10050:2002, lub 8-bitowe, jak w kodach PN-ISO/IEC mają inne funkcje. W związku z tym wyróżniamy 8859-2:2001 czy ISO/IEC 8859-5:1999. Kiedy jednak następujące typy współrzędnych kodowych: repertuar jest większy niż pojemność jednostki ko- • Współrzędne znaków graficznych. dowej, jednym z możliwych rozwiązań jest stosowa- • Współrzędne znaków formatujących. nie sekwencji o zmiennej długości; przykładem może być kodowanie PN-ISO/IEC 6937, w którym pewne • Współrzędne znaków sterujących. znaki są reprezentowane przez jeden bajt, a inne • Współrzędne użytku prywatnego (ang. Private przez dwa; warto zwrócić uwagę, że PN-ISO/IEC Usage Area – PUA). 6937 wyznacza repertuar znaków piśmiennych, ale • Współrzędne surogatów (stosowane we wspo- nie wyznacza kodowego zestawu znaków w sensie mnianym niżej formacie kodowania UTF-16). zdefiniowanym wyżej. W przypadku Unicode’u repertuar jest tak • Współrzędne nieznakowe (ang. noncharacter), duży, że w użyciu jest kilka formatów kodowa- zarezerwowane do użytku wewnętrznego. nia. Najbardziej naturalny, ale również najmniej • Współrzędne rezerwowe (ang. reserved), prze- wygodny i efektywny jest zdefiniowany w ISO/IEC widziane do wykorzystania w przyszłości. 10646 format UCS-4 wykorzystyjący w pełni se- Współrzędne możemy klasyfikować również we- kwencje czterech 8-bitowych bajtów, mogące repre- dług ich wartości liczbowych. Wyróżniamy wówczas zentować współrzędne kodowe z przedziału od 0 do 4 płaszczyzny: 7FFFFFFF. Podobny do niego jest UTF-32 (w tym wypadku UTF oznacza ang. Unicode Enco- • Współrzędne od 0000 do FFFF: płaszczyzna 0 ding Form, w innym może oznaczać UCS Encoding – podstawowa płaszczyzna wielojęzyczna (ang. format), ale współrzędne kodowe muszą należeć do Basic Multilingual Plane – BMP). przedziału od 0 do 10FFFF. Analogicznie jest zdefi- 5 Nie są to jedyne możliwe ani powszechnie stosowane niowany UCS-2, który może być stosowany tylko do tłumaczenia angielskich terminów. repertuatu podstawowej płaszczyzny wielojęzycznej.

12 Bachotek, 30 kwietnia – 2 maja 2004 Standard Unicode 4.0. Wybrane pojęcia i terminy

Znacznie większe znaczenia w praktyce mają sługiwano się również pod różnymi nazwami poję- formaty o zmiennej długości sekwencji jednostek ko- ciem bezpośredniego odwzorowania repertuaru zna- dowych. Należą do nich UTF-8 i UTF-16. UTF-8 re- ków na uporządkowane sekwencje bajtów. Dla prezentuje znak Unicode’u za pomocą od jednego do takich odwzorowań, rejestrowanych przez Internet czterech 8-bitowych bajtów, które mają dodatkowo Assigned Numbers Authority (http://www.iana. pewne wygodne własności. UTF-16 wykorzystuje org/assignments/character-sets), proponuje się jedną lub dwie 16-bitowe jednostki kodowe (każda z obecnie nazwę character maps ([3]). Ponieważ nie dwóch jednostek, które wspólnie tworzą reprezenta- widzę możliwości dosłownego tłumaczenia tego okre- cję pojedynczego znaku, jest nazywana surogatem). ślenia, proponuję nazywać je po polsku bajtowymi zestawami znaków. Schematy kodowania znaków Wprowadzony W wielu zastosowaniach – np. poczcie elek- dotąd terminy jeszcze nie wystarczają do opisania tronicznej – pojawia się jeszcze jedno odwzorowa- wszystkich spotykanych w praktyce aspektów kodo- nie, nazywane po angielsku transfer encoding syntax. wania znaków, stąd kolejne pojęcie – schemat kodo- Ponieważ słowo syntax w tej nazwie nie ma moim wania znaków (ang. character encoding scheme – zdaniem uzasadnienia, proponuję nazwę tę tłuma- CES). Schemat taki może być prosty lub złożony. czyć jako kodowanie transferowe; jego charaktery- Prosty schemat kodowania to po prostu omó- styczną cechą jest to, że kodowaniu podlegają napisy wiony wyżej format kodowania uzupełniony o in- lub pliki, a nie poszczególne znaki. Jako swoisty formację, w jakiej kolejności są zapamiętywane lub rodzaj kodowania transferowego można traktować transmitowane bajty składające się na jednostki ko- kompresję tekstu, a w szczególności metody specjal- dowe i ich sekwencje.Tak więc dla formatu UTF-16 nie zaprojektowanego dla standardu Unicode, takie mamy schematy UTF-16BE i UTF-16LE, gdzie BE jak SCSU (Standard Compression Scheme for Uni- i LE znaczą odpowiednio big-endian i little-endian; code). Ciekawym przykładem kodowania transfero- analogicznie dla UTF-32 mamy UTF-32BE i UTF- wego jest również Punycode, stosowane w internacjo- 32LE. Dla formatów korzystających z jednoelemen- nalizowanych nazwach domen internetowych ([10]). towych sekwencji pojedynczych bajtów mamy na- tomiast do czynienia z trywialnym schematem nie Uwagi końcowe różniącym się praktycznie od formatu kodowania. W artykule tym skoncentrowałem się na mniej zna- Warto pamiętać, że prezentowany tutaj apa- nych i rzadziej opisywanych aspektach standardu. rat pojęciowy nie powstał od razu, nowe pojęcia Pominięte kwestie, takie jak różnica między znakiem tworzone są sukcesywnie dla lepszego wyjaśnienia piśmiennym i glifem czy też sprawa unifikacji zna- kwestii, które nie były rozstrzygnięte jednoznacznie ków i innych założeń projektowych standardu, są lub z innych powodów sprawiały problemy w prak- niewątpliwie ważne, ale są też omawiane w prak- tyce. Wynikiem tego ewolucyjnego podejścia jest tycznie każdym wprowadzeniu do Unicode’u. fakt, że UTF-8, UTF-16 i UTF-32 mogą oznaczać za- równo formaty, jak i schematy kodowania znaków; Literatura dla uniknięcia nieporozumień można stosować odpo- [1] Janusz S. Bień. Kodowanie tekstów polskich wiednio oznaczenia UTF-16 CEF, UTF-32 CES itd. w systemach komputerowych. Postscriptum UTF-16 CES i UTF-32 CES są przykładami schema- (ISSN 1427-0501) nr 27–29 (jesień ’98 – wio- tów złożonych. sna ’99), s. 4–27. http://www.mimuw.edu.pl/ Złożony schemat kodowania to taki, który wy- ~jsbien/publ/JSB-ktp98/. korzystuje jeden lub więcej prostych schematów ko- [2] Janusz S. Bień. O „pierwszym rozbiorze dowania oraz jakiś mechanizm przełączania mię- polszczyzny”, Radzie Języka Polskiego i nor- dzy nimi. Klasycznym przykładem jest m.in. zi- malizacji. Prace Filologiczne XLVIII, s. 33-62, lustrowana we wprowadzeniu norma PN-ISO/IEC 2003. http://www.mimuw.edu.pl/~jsbien/ 2022:1996; schematy UTF-16 CES i UTF-32 CES róż- publ/JSB-PF03/. nią się natomiast od odpowiednich formatów tym, [3] Mark Davis. Character Mapping Markup że kolejność bajtów jest wskazywana przez znacznik Language. Unicode Technical Report #22, kolejności bajtów (ang. – BOM). 2002-08-16. http://www.unicode.org/ Bajtowe zestawy znaków i kodowanie transfe- reports/tr22/. rowe Wprowadzone wyżej dość wyrafinowane po- [4] ECMA-6. 7-Bit Coded Character Set, 6th jęcia swoją rację bytu zawdzięczają subtelnościom edition. December 1991. http://www. normy ISO/IEC 10646 i standardu Unicode. Dla ecma-international.org/publications/ pełności obrazu warto powiedzieć, że w praktyce po- standards/ECMA-006.HTM.

XII Ogólnopolska Konferencja Polskiej Grupy Użytkowników Systemu TEX 13 Janusz S. Bień

[5] ECMA-35. Character Code Structure and Extension Techniques, 6th edition. December 1994. http://www.ecma-international.org/ publications/standards/ECMA-035.HTM. [6] ECMA-48. 8-Bit Coded Character Set Struc- ture and Rules, 3rd edition. December 1991. http://www.ecma-international.org/ publications/standards/ECMA-048.HTM. [7] ECMA-94. 8-Bit Single-Byte Coded Gra- phic Character Sets - Latin Alphabets No. 1 to No. 4, 2nd edition. June 1986. http://www.ecma-international.org/ publications/standards/ECMA-094.HTM. [8] ECMA-113. 8-Bit Single-Byte Coded Graphic Character Sets - Latin/Cyrillic Alphabet, 3rd edition. December 1999. http://www.ecma-international.org/ publications/standards/ECMA-113.HTM.

[9] Rob Pike, Ken Thompson. Hello World or

e¡ Καlηµέρα κόσµε or ¸ÐD:À . http: //plan9.bell-labs.com/sys/doc/utf.html (także utf.ps i utf.pdf). [10] RFC 3492. Punycode: A Bootstring enco- ding of Unicode for Internationalized Do- main Names in Applications (IDNA), A. Co- stello, March 2003, ftp://ftp.rfc-editor. org/in-notes/rfc3492.txt. [11] Robert W. Scheifler. Compound Text Enco- ding. Version 1.1.xf86.1, XFree86 4.0.2., XFree Inc. http://www.xfree86.org/current/ ctext.html. [12] The Unicode Consortium. The Unicode Stan- dard, Version 4.0. Boston, MA, Addison- Wesley, 2003. ISBN 0-321-18578-1. [13] Ken Whistler, Mark Davis, Asmus Freytag. Character Encoding Model. Unicode Technical Report #17 (Proposed Update, 2004-03- 25). http://www.unicode.org/unicode/ reports/tr17/tr17-4.html.

14 Bachotek, 30 kwietnia – 2 maja 2004