unicode 7






UNICODE(7) Podręcznik Programisty Linuxa UNICODE(7)


NAZWA
Unicode - zunifikowany 16-bitowy superzestaw znaków

OPIS
Międzynarodowy standard ISO 10646 definiuje Universal
Character Set (UCS). UCS zawiera wszelkie znaki wszelkich
innych zestawów znaków. Gwarantuje on również kompaty
bilność na okrągło, tj. budowanie takich tablic konwersji
że żadna informacja nie jest tracona podczas konwersji
łańcuch z jednego kodowania na UCS i z powrotem.

UCS zawiera znaki wymagane do przedstawienia prawie wszys
tkich znanych języków. Obejmuje to, oprócz wielu języków
które używają rozszerzeń pisma łacińskiego, także
następujące pisma i języki: grecki, cyrylica, hebrajski,
arabski, armeński, gruziński, japoński, chiński, hiragana,
katakana, koreański, hangul, devangari, bengalski, gur
mukji, gujarati, tamilski, oriya, telugu, kannada, mala
jlamski, tajski, lao, bopomofo i pewną liczbę innych.
Trwają prace nad włączeniem innych pism, jak
tybetańskiego, khmerskiego, runicznego, etiopskiego,
hieroglifów, różnych języków indoeuropejskich i wielu
innych. Dla większości z tych drugich języków w momencie
opublikowania standardu w 1993, nie było jeszcze jasnym
jak można je najlepiej zakodować. Dodatkowo oprócz znaków
wymaganych przez pisma, włączono także duży zestaw symboli
graficznych, typograficznych, matematycznych i naukowych,
dostarczanych z TeXem, PostScriptem, MS-DOSem, Macin
toshem, Videotextem, OCR i wieloma innymi systemami
przetwarzania tekstów, a także kody specjalne, gwaratujące
"kompatybilność na okrągło" z wszelkimi innymi ist
niejącymi zestawami znaków.

Standard UCS (ISO 10646) opisuje zestaw znaków o architek
turze 31-bitowej. Jednakże dzisiaj tylko pierwszym 65534
pozycjom kodowania (0x000 do 0xfffd), zwane Basic Multi
lingual Plane (BMP), przypisano znaki, i spodziewane jest
że tylko bardzo egzotyczne znaki (np. hieroglify) dla
specjalnych celów naukowych otrzymają miejsce poza ową
16-bitową BMP.

Znaki UCS 0x0000 do 0x007f są identyczne z tymi w klasy
cznym zestawie znaków US-ASCII a znaki w zakresie 0x000 do
0x00ff są identyczne z tymi w zestawie znaków ISO 8859-1 .

ZNAKI SKŁADAJĄCE
Niektóre punkty kodowe w UCS zostały przypisane do znaków
składające. Podobne są one do niespacyjnych klawiszy
akcentów na maszynie do pisanie. Znak składający dodaje
akcent do poprzedniego znaku. Najważniejsze znaki akcen
towane mają osobne kody w UCS, jednak mechanizm znaków
składających pozwala dodawać akcenty i inne znaki diakry
tyczne do każdego znaku. Znaki składające zawsze
następują po znaku który modyfikują. Dla przykładu,



Linux 1995-12-27 1





UNICODE(7) Podręcznik Programisty Linuxa UNICODE(7)


niemiecki znak A-umlaut ("Latin capital letter A with
diaeresis") może być przedstawiony za pomocą bądź to
prezłożonego kodu UCS code 0x00c4, lub alternatywnie jako
kombinacje normalnych capital letter A" plus "combining
diaeresis": 0x0041 0x0308.

POZIOMY IMPLEMENTACJI
Ponieważ spodziewa się że nie wszystkie systemy będą
obsługiwać zaawansowane mechanizmy w rodzaju składania
znaków, ISO 10646 określa następujące trzy poziomy imple
mentacji UCS:

Poziom 1 Nieobsługiwane są znaki składane i Hangul Jamo
(specjalne, bardziej skomplikowane kodowanie
pisma koreańskiego, w którymi sylaby Hangul są
kodowane jako dwa lub trzy podznaki).

Poziom 2 Jak poziom 1, jednakże w niektórych pismach
zezwala się już na niektóre znaki składające (np.
hebrajski, arabski, devangari, bengalski, gur
mukhi, gujarati, oriya, tamlilski, telugu, kan
naga, malajlamski, tajski i lao).

Level 3 Wszystkie znaki UCS są obsługiwane.

Standard Unicode 1.1, opublikowany przez Unicode Consor
tium, zawiera dokładnie UCS Basic Multilingual Plane na
trzecim poziomie implementacji, jak to opisano w ISO
10646. Unicode 1.1 dodaje także niektóre definicje seman
tyczne pewnych znaków do definicji ISO 10646.

UNICODE W LINUXIE
W Linuksie obecnie powinno używać się BMP tylko na pier
wszym poziomie implementacji, aby ominąć komplikacje
wynikające ze znaków składanych. Wyższe poziomy implemen
tacji są odpowiedniejsze dla specjalnych formatów
przetwarzania tekstów, ale nie jako rdzeniowy systemowy
zestaw znaków. Typ w C wchar_t jest w Linuksie 16-bitową
liczbą całkowitą bez znaku i jego wartości interpretowane
sa jako kody UCS na poziomie 1 BMP .

Ustawienie locale okresla czy systemowym kodowaniem znaków
jest na przykład UTF-8 czy ISO 8859-1. Funkcje bib
lioteczne w rodzaju wctomb, mbtowc, albo wprintf mogą
zostać użyte do transformacji wewnętrznych znaków wchar_t
i łańcuchów na systemowe kodowanie znaków i na odwrót.

OBSZAR PRYWATNY
W BMP, kodom z zakresu 0xe000 do 0xf8ff nigdy nie zostaną
przypisane znaki; są one zarezerwowane do użytku prywat
nego. Dla społeczności Linuxowej ów obszar prywatny
został dalej podzielony na zakres od 0xe000 do 0xefff,
którego może używać indywidualnie każdy użytkownik, oraz
strefę linuxową w zakresie 0xf000 do 0xf8ff, której



Linux 1995-12-27 2





UNICODE(7) Podręcznik Programisty Linuxa UNICODE(7)


rozszerzanie podlega koordynacji pomiędzy wszystkimi
użytkownikami Linuxa. Rejestr znaków przypisanych do
strefy Linuxowej utrzymuje obecnie H. Peter Anvin
<Peter.Anvin@linux.org> z Yggdrasil Computing, Inc. Zaw
iera one niektóre znaki graficzne DEC VT100 których
brakuje w Unicode, daje bezpośredni dostęp do znaków w
buforze fontu konsoli i zawiera znaki używane przez kilka
bardziej zaawansowanych pism, jak klingoński.

LITERATURA
* Information technology - Universal Multiple-Octet Coded
Character Set (UCS) - Part 1: Architecture and Basic
Multilingual Plane. International Standard ISO 10646-1,
International Organization for Standardization, Genewa,
1993.

Jest to oficjalna specyfikacja UCS. Całkiem oficjalna,
całkiem gruba, i całkiem droga. Co do informacji o
zamówieniu, zobacz http://www.iso.ch.

* The Unicode Standard - Worldwide Character Encoding Ver
sion 1.0. The Unicode Consortium, Addison-Wesley, Read
ing, MA, 1991.

Dostępny jest już Unicode 1.1.4. Zmiany w stosunku do
książki [opisującej] 1.0 są dostępne na ftp://ftp.uni
code.org. Unicode 2.0 zostanie opublikowany w postaci
książkowej w 1996.

* S. Harbison, G. Steele. C - A Reference Manual. Fourth
edition, Prentice Hall, Englewood Cliffs, 1995, ISBN
0-13-326224-3.

Dobra książka-referencja języka programowania C.
Czwarte wydanie obejmuje także 1 Poprawkę do standardu C
ISO (ISO/IEC 9899:1990) z 1994, która dodaje znaczną
liczbę nowych funkcji bibliotecznych C do obsługi
wielobajtowych zestawów znaków.

BUGS
W czasie pisania tej manpage, obsługa UCS w Linuxowej libc
była daleka od kompletnej.

AUTOR
Markus Kuhn <mskuhn@cip.informatik.uni-erlangen.de>

ZOBACZ TAKŻE
utf-8(7)









Linux 1995-12-27 3





Wyszukiwarka

Podobne podstrony:
Unicode 8inl source
unicodebidi
Unicode 8hpp source
Unicode?pp source
unicode
module unicodedata
unicode bidi
Character UnicodeBlock
UnicodeTest
unicode bidi
unicode
Character UnicodeBlock
unicode
UnicodeData
UnicodeData

więcej podobnych podstron