Provided by: manpages-ru_0.98-4_all bug

НАИМЕНОВАНИЕ

       Unicode - унифицированное 16-битное надмножество символов

ОПИСАНИЕ

       Международный стандарт ISO 10646 описывает Универсальный Набор Символов
       Universal Character Set (UCS).  UCS содержит все символы всех остальных
       стандартных    наборов   символов.    Также   он   гарантирует   полную
       совместимость, т. е. для любой другой кодировки можно построить таблицы
       преобразования  так,  что  при преобразовании из этой кодировки в UCS и
       обратно информация не будет потеряна.

       UCS содержит символы,  требуемые  для  представления  практически  всех
       известных  языков.   Сюда  входит  множество языков, которые используют
       расширения латиницы, а также следующие начертания и  языки:  греческий,
       кириллический,   иврит,   арабский,  армянский,  грузинский,  японский,
       китайский,   хирагана,   катакана,   корейский,   Hangul,   деванагари,
       бенгальский,  Gurmukhi,  Gujarati,  Oriya, тамильский, телугу, Kannada,
       Malayam, тайский, лаосский, Bopomofo, и множество других.  Идет  работа
       по включению тибетской, кхмерской, рунической и эфиопской письменности,
       иероглифов, различных индо-европейских языков, а также  многих  других.
       Для  большинства  последних  на  момент  публикации стандарта (в 1993-м
       году) не было до конца известно, как лучше всего  закодировать  их.   В
       дополнение  к  символам,  которые  требуются  для  этих  языков,  также
       присутствует  множество  графических,  типографских,  математических  и
       научных символов, типа тех, что используются в TeX, PostScript, MS-DOS,
       Macintosh, Videotext, OCR, а  также  множестве  текстовых  процессоров.
       Кроме  того,  в  UCS  включены  специальные  коды, гарантирующие полную
       совместимость со всеми существующими наборами символов.

       Стандарт  UCS  (ISO  10646)  описывает  архитектуру  31-битного  набора
       символов.   Однако  в  настоящее  время символы присвоены только первым
       65534 позициям  (от  0x0000  до  0xfffd),  которые  называются  Базовый
       Мульти-языковый  План  (BMP).  Ожидается, что только очень экзотические
       символы (типа  иероглифов),  предназначенные  для  специальных  научных
       исследований, получат "прописку" за пределами этого 16-битного BMP.

       Символы UCS с кодами от 0x0000 до 0x007f идентичны классическому набору
       символов US-ASCII, а символы в диапазоне  кодов  от  0x0000  до  0x00ff
       идентичны набору символов ISO 8859-1 Latin-1.

КОМБИНИРУЮЩИЕ СИМВОЛЫ

       Некоторые  коды  в  UCS  были  назначены комбинирующим символам.  Такие
       символы похожи на ударения в полиграфии,  которые  не  изменяют  размер
       своей буквы.  Комбинирующие символы просто добавляют акцент предыдущему
       символу.  Большинство  важных   акцентирующих   символов   имеют   свои
       собственные  коды  в  UCS,  тогда  как  механизм комбинирующих символов
       позволяет добавлять ударения и другие диакритические отметки  к  любому
       символу.  Комбинирующие символы всегда следуют за символом, который они
       модифицируют. Например, немецкий символ  Умляут-А  ("Латинская  большая
       буква A с тремой") может быть представлен предварительно скомпонованным
       (код UCS  0x00c4),  или  как  комбинация  обычного  символа  "Латинская
       большая буква А" и символа "комбинирующая трема": 0x0041 0x0308.

УРОВНИ РЕАЛИЗАЦИИ

       Так  как не предполагается, что все системы поддержат такие продвинутые
       механизмы, как комбинирование символов, ISO 10646 определяет  следующие
       три уровня реализации UCS:

       Уровень 1
                Комбинированные   символы   и  символы  Hangul  Jamo  (особая,
                усложненная кодировка корейской  рукописи,  где  слоги  Hangul
                кодируются двумя или тремя подсимволами) не поддерживается.

       Уровень 2
                Как  уровень  1,  однако  теперь в некоторых языках (таких как
                иврит, арабский, деванагари, бенгальский, Gurmukhi,  Gujarati,
                Oriya,  тамильский,  телугу,  Kannada,  Malayalam,  тайский  и
                лаосский) допускаются некоторые комбинированные символы.

       Уровень 3
                Поддержка всех символов UCS.

       Стандарт Unicode 1.1, опубликованный  Консорциумом  Unicode,  описывает
       UCS  Basic Multilingual Plane на третьем уровне реализации, как сказано
       в  стандарте  ISO  10646.  Также  Unicode   1.1   добавляет   некоторые
       семантические  определения  для  некоторых  символов  к определениям из
       стандарта ISO 10646.

РЕАЛИЗАЦИЯ UNICODE В LINUX

       В Linux на данный момент реализован только 1-й уровень  BMP.   с  целью
       избежать  сложностей  реализации комбинирующих символов.  Более высокие
       уровни подходят для специфических форматов обработки текста, но не  как
       общесистемный  набор  символов.   Переменные  языка  "C"  типа  wchar_t
       содержат 32-битное целое со знаком, которое интерпретируется  как  коды
       UCS4.

       Настройки  локализации  указывают,  какая кодировка является системной,
       например UTF-8 или ISO 8859-1.  Библиотечные  функции  wctomb,  mbtowc,
       или  wprintf  могут  использоваться для преобразования символов и строк
       типа wchar_t, которые используются в программе, в  системную  кодировку
       или обратно.

ПРИВАТНАЯ ОБЛАСТЬ

       В  BMP  в диапазоне кодов от 0xe000 до 0xf8ff никогда не будет назначен
       ни один символ, так как  эта  область  зарезервирована  стандартом  для
       использования  в  любых  целях.   В  сообществе Linux этот диапазон был
       поделен  еще  раз,  причем  поддиапазон  от  0xe000  до  0xefff   может
       использоваться  в  своих  личных  целях,  а  использование диапазона от
       0xf000  до  0xf8ff  координируется  большинством  пользователей  Linux.
       Регистрацией  символов,  назначенных  для  Linux-зоны,  в данный момент
       занимается Peter Anvin  <Peter.Anvin@linux.org>,  Yggdrasil  Computing,
       Inc.  В данный момент Linux-зона содержит некоторые графические символы
       из DEC VT100, отсутствующие в Unicode, предоставляет  прямой  доступ  к
       символам  в  буфере  шрифтов  консоли  и содержит символы, используемые
       некоторыми продвинутыми языками типа клингонского.

ЛИТЕРАТУРА

       * 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, Geneva, 1993.

         Это  официальная  спецификация  стандарта UCS.  Довольно официальная,
         довольно толстая и довольно  дорогая.   Если  вы  хотите  купить  ее,
         смотрите на http://www.iso.ch.

       * The Unicode Standard - Worldwide Character Encoding Version 1.0.  The
         Unicode Consortium, Addison-Wesley, Reading, MA, 1991.

         В данный момент доступна версия Unicode 1.1.4. Изменения относительно
         версии  1.0  доступны  с  ftp://ftp.unicode.org.  Unicode  2.0  будет
         опубликован в печатном виде в 1996-м году.

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

         Хорошее   справочное   руководство   по   языку  программирования  C.
         Четвертая редакция содержит, в том  числе,  Первую  Поправку  1994-го
         года  к  стандарту  ISO  C  (ISO/IEC  9899:1990), которая добавляет в
         библиотеку С  множество  новых  функций  для  поддержки  многобайтных
         наборов символов.

ОШИБКИ

       Во время написания этого руководства поддержка UCS в библиотеке libc ОС
       Linux была далека от завершения.

АВТОР

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

СМОТРИ ТАКЖЕ

       utf-8(7)

ПЕРЕВОД

       Перевел с английского Алексей Миллер <asm@asm.kiev.ua> 2000