table of contents
other languages
other sections
UNICODE(7) | Podręcznik Programisty Linuksa | UNICODE(7) |
NAZWA¶
Unicode - zunifikowany zestaw znakówOPIS¶
Międzynarodowy standard ISO 10646 definiuje Universal Character Set (UCS). UCS zawiera wszelkie znaki wszelkich innych zestawów znaków. Gwarantuje on również kompatybilność na okrągło, tj. budowanie takich tablic konwersji, że podczas konwersji łańcucha z jednego kodowania na UCS i z powrotem nie jest tracona żadna informacja.Znaki składające¶
Niektóre punkty kodowe w UCS zostały przypisane do znaków składających. Podobne są one do niespacyjnych klawiszy akcentów na maszynie do pisania. Znak składający dodaje akcent do poprzedniego znaku. Najważniejsze znaki akcentowane mają osobne kody w UCS, jednak mechanizm znaków składających pozwala dodawać akcenty i inne znaki diakrytyczne do każdego znaku. Znaki składające zawsze następują po znaku, który modyfikują. Dla przykładu, niemiecki znak A-umlaut ("Latin capital letter A with diaeresis") może być przedstawiony za pomocą bądź to istniejącego już złożonego znaku UCS o kodzie 0x00c4, bądź alternatywnie jako kombinacja zwykłych znaków "Latin capital letter A" i "combining diaeresis": 0x0041 0x0308. Znaki składające są istotne na przykład do kodowania pisma tajskiego lub do składu zapisu matematycznego oraz użytkowników międzynarodowego alfabetu fonetycznego (IPA).Poziomy implementacji¶
Ponieważ należy się spodziewać, że nie wszystkie systemy będą obsługiwać zaawansowane mechanizmy w rodzaju składania znaków, ISO 10646-1 określa następujące trzy poziomy implementacji UCS:- Poziom 1
- Nieobsługiwane są znaki składane i Hangul Jamo (specjalne, bardziej skomplikowane kodowanie pisma koreańskiego, w którym sylaby Hangul są kodowane jako dwa lub trzy podznaki).
- Poziom 2
- Oprócz zastrzeżeń poziomu 1, obsługiwane są znaki składające w przypadku języków, dla których są one istotne (np. tajski, lao, hebrajski, arabski, dewanagari, malajski itp.).
- Poziom 3
- Obsługiwane są wszystkie znaki UCS.
Unikod w systemie Linux¶
W systemie GNU/Linux, typ C wchar_t jest 32-bitową liczbą typu integer ze znakiem. Jej wartość są interpretowane przez bibliotekę C, zawsze jako wartości kodu UCS (we wszystkich ustawieniach locale), a ta konwencja jest sygnalizowana przez bibliotekę GNU C w stosunku do aplikacji, przez zdefiniowane stałej __STDC_ISO_10646__, zgodnie ze standardem ISO C99.Obszar prywatny¶
W BMP, kodom z zakresu 0xe000 do 0xf8ff nigdy nie zostaną przypisane znaki; są one zarezerwowane do użytku prywatnego. Dla społeczności Linuksowej ó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ę linuksową w zakresie 0xf000 do 0xf8ff, której rozszerzanie podlega koordynacji pomiędzy wszystkimi użytkownikami Linuksa. Rejestr znaków przypisanych do strefy Linuksowej utrzymuje obecnie H. Peter Anvin <Peter.Anvin@linux.org>Literatura¶
- *
- Information technology - Universal Multiple-Octet Coded
Character Set (UCS) - Part 1: Architecture and Basic Multilingual Plane.
International Standard ISO/IEC 10646-1, International Organization for
Standardization, Genewa, 2000.
- *
- The Unicode Standard, Version 3.0. The Unicode Consortium, Addison-Wesley, Reading, MA, 2000, ISBN 0-201-61633-5.
- *
- S. Harbison, G. Steele. C - A Reference Manual. Fourth
edition, Prentice Hall, Englewood Cliffs, 1995, ISBN 0-13-326224-3.
- *
- Unicode Technical Reports.
- *
- Markus Kuhn: UTF-8 and Unicode FAQ for UNIX/Linux.
http://www.cl.cam.ac.uk/~mgk25/unicode.html
Zawiera informacje o subskrypcji listy dyskusyjnej linux-utf8, która
jest najlepszym miejscem do szukania porad na temat używania Unikodu w
systemie Linux.
- *
- Bruno Haible: Unicode HOWTO.
BŁĘDY¶
Gdy ta strona podręcznika była aktualizowana po raz ostatni, obsługa locale UTF-8 w bibliotece GNU C była już dojrzała, podobnie jak obsługa XFree86, która również była zaawansowana, ale wciąż trwały prace nad programami (głównie edytorami), aby umożliwić im używanie locale UTF-8. Obecnie, obsługa UCS w systemie Linux obejmuje zwykle znaki CJK o podwójnej szerokości, a niekiedy nawet proste nakładanie znaków składających, lecz nie obejmuje najczęściej obsługi pism pisanych od prawej do lewej lub wymaganych podstawień ligatur, w pismach takich jak hebrajskie, arabskie lub indyjskie. Pisma te są obecnie obsługiwane jedynie w określonych programach z interfejsem graficznym (przeglądarki internetowe, edytory tekstu) z zaawansowanymi silnikami renderowania tekstu.ZOBACZ TAKŻE¶
setlocale(3), charsets(7), utf-8(7)O STRONIE¶
Angielska wersja tej strony pochodzi z wydania 3.40 projektu Linux man-pages. Opis projektu oraz informacje dotyczące zgłaszania błędów można znaleźć pod adresem http://www.kernel.org/doc/man-pages/.TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Gwidon S. Naskrent (PTM) <naskrent@hoth.amu.edu.pl> i Michał Kułach <michal.kulach@gmail.com>. Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 3.40 oryginału.11-05-2001 | GNU |