Provided by: manpages-ru_4.18.1-1_all bug

ИМЯ

       unicode - универсальный набор символов

ОПИСАНИЕ

       Universal  Character  Set  (UCS)  (универсальный  набор  символов  —  Юникод)  определён в
       международном стандарте ISO  10646.  UCS  содержит  все  символы  других  стандартов.  Его
       использование  гарантирует  «полную  взаимозаменяемость»,  другими  словами,  таблицы  для
       преобразований могут быть построены таким образом, что не произойдёт потери информации при
       преобразовании строки из сторонней кодировки в UCS и обратно.

       UCS  содержит  символы,  необходимые  для  представления практически всех известных сейчас
       языковых символов. В него включены не только языковые  символы  из  латинской,  греческой,
       кириллицы,  иврита, арабской, армянской, грузинской письменности, но и китайские, японские
       и корейские идеограммы, а также символы из таких  письменностей  как  хирагана,  катакана,
       хангул, деванагари, бенгальской, гурмуки, гуджарати, ория, тамильской, телугской, каннада,
       малаяламской, тайской, лаосской, кхмерской, бопомофо,  тибетской,  рунической,  эфиопской,
       канадского    слогового    письма,    чероки,    монгольской,    охамской,    мьянмарской,
       синхальской,таанской, юи и других. По ещё не включённым  письменностям  постоянно  ведутся
       работы  для  поиска  их  самой  оптимальной  кодировки для компьютеров и добавлении. К ним
       относятся не только различные иероглифы и письменности  из  индо-европейской  исторической
       группы,  но  и некоторые искусственные языки, такие как тенгвар, сирт и клингонский. Также
       UCS содержит большое множество  графических,  типографических,  математических  и  научных
       символов,  используемых  в таких программах, как TeX, Postscript, APL, MS-DOS, MS-Windows,
       Macintosh, шрифтах OCR и многих других текстовых процессорах и издательских системах.

       Стандарт UCS (ISO 10646) описывает 31-битную архитектуру набора символов, состоящую из 128
       24-битных  групп, каждая из которых разделена на 256 16-битных плоскостей, которые, в свою
       очередь, состоят из 256 8-битных строк и 256 колонок, каждая для одного символа. В 1 части
       стандарта (ISO 10646-1) определяются первые 65534 кодируемых позиций (с 0x0000 по 0xfffd),
       каждая из которых образует Basic Multilingual Plane (BMP) (основную многоязычную матрицу),
       являющуюся плоскостью 0 в группе 0. В 2 части стандарта (ISO 10646-2) добавляются символы,
       не вошедшие в BMP,  в  некоторые  дополнительные  плоскости  в  диапазоне  от  0x10000  до
       0x10ffff  группы  0.  Пока  нет  планов  по  добавлению  символов  за  предел  0x10ffff  в
       существующий стандарт, поэтому в обозримом будущем во всём закодированном  пространстве  в
       действительности  будет  использоваться  только  малая  часть  группы  0. BMP содержит все
       символы, используемые в других наборах символов. Дополнительные плоскости, добавляемые ISO
       10646-2  покрывают некоторые особенные, специальные и экзотические символы, используемые в
       науке,  при  печати  словарей,  издательской  индустрии,  протоколах  высокого  уровня   и
       некоторыми энтузиастами.

       Представление  каждого  символа в UCS в виде -байтного слова называют формой UCS-2 (только
       для символов BMP), UCS-4 называют представление каждого символа  4-байтным  словом.  Также
       существуют  2  формы  кодировки:  UTF-8  —  для  совместимости  со старым ПО, работающим с
       кодировкой ASCII, и UTF-16 — для совместимости с ПО, работающим с кодировкой UCS-2, для не
       BMP символов до 0x10ffff позиции.

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

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

       Комбинирующие символы являются необходимым инструментом для кодирования символов  тайского
       языка, математики и для пользователей международного фонетического алфавита (International
       Phonetic Alphabet).

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

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

       Уровень 2
                В дополнении к символам уровня 1 комбинирующие символы разрешено использовать для
                некоторых языков, в  которых  они  важны  (например:  тайский,  лаосский,  иврит,
                арабский, деванагари, малаяламский).

       Уровень 3
                Поддерживаются все символы UCS.

       Стандарт  Unicode  3.0,  опубликованный Unicode Consortium, содержит точную реализацию UCS
       Basic Multilingual Plane на уровне 3, как описано в стандарте ISO 10646-1:2000. В  Unicode
       3.1  добавлены  дополнительные  плоскости  ISO  10646-2.  Стандарт  Юникода  и технические
       сообщения, публикуемые Unicode Consortium, предоставляют много  дополнительной  информации
       по  семантике и рекомендации по использованию разных символов. Также поясняются принципы и
       алгоритмы для редактирования, сортировки, сравнения, нормализации, преобразования и вывода
       строк Юникода.

   Юникод в Linux
       В  системах  GNU/Linux  тип  языка Cи wchar_t является 32-битным знаковым целым типом. Его
       значения всегда интерпретируются библиотекой Си как значения кодов UCS (во всех  локалях);
       в  этом  случае,  согласно  стандарту  ISO  C99,  библиотека  GNU  C  определяет константу
       __STDC_ISO_10646__.

       UCS/Unicode может использоваться подобно  ASCII  в  потоках  ввода/вывода,  соединениях  с
       терминалами,  в  текстовых  файлах,  названиях  файлов  и  в  переменных  окружения в виде
       многобайтовой кодировке UTF-8, совместимой с ASCII. Для  обозначения  использования  UTF-8
       как  кодировки  во всех приложениях должна быть выбрана подходящая локаль через переменные
       окружения (например, «LANG=ru_RU.UTF-8»).

       The nl_langinfo(CODESET) function returns the name  of  the  selected  encoding.   Library
       functions  such  as  wctomb(3)   and  mbsrtowcs(3)   can be used to transform the internal
       wchar_t characters and strings into the system character encoding and back and  wcwidth(3)
       tells how many positions (0–2) the cursor is advanced by the output of a character.

   Закрытые используемые области (Private Use Areas, PUA)
       В  основной  многоязычной матрице диапазон с 0xe000 до 0xf8ff никогда не будет использован
       для обозначения стандартных символов, он  зарезервирован  для  частного  использования.  В
       Linux  эта  закрытая  область  делится  на: диапазон 0xe000 по 0xefff может использоваться
       конечным пользователем; диапазон 0xf000  по  0xf8ff  (так  называемая  зона  Linux)  может
       использоваться  для расширений, согласованных среди пользователей Linux. В настоящее время
       регистрацией символов в зоне Linux занимается LANANA,  а  сам  реестр  находится  в  файле
       Documentation/admin-guide/unicode.rst      исходного      кода      ядра      Linux     (в
       Documentation/unicode.txt до Linux 4.10).

       Две  другие  плоскости  зарезервированы  для   закрытого   использования,   плоскость   15
       (дополнительная  закрытая  используемая  область-A,  диапазон  от  0xf0000  до  0xffffd) и
       плоскость 16 (дополнительная закрытая используемая  область-B,  диапазон  от  0x100000  до
       0x10fffd).

   Литература
       •  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, Geneva, 2000.

          This is the official specification of UCS.  Available from ⟨http://www.iso.ch/⟩.

       •  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.

          Хорошая  книга  о  программировании  на  языке  Си.  Четвёртое  издание включает в себя
          описание поправки 1, сделанной в стандарте ISO C90 в 1994 году. Эта поправка  добавляет
          к  стандарту большое количество новых библиотечных функций Си для поддержки кодирования
          широких и многобайтовых символов, но она не так полна как  стандарт  ISO  C99,  который
          расширяет поддержку широких и многобайтовых символов.

       •  Unicode Technical Reports.
          ⟨http://www.unicode.org/reports/⟩

       •  Markus Kuhn: UTF-8 and Unicode FAQ for UNIX/Linux.
          ⟨http://www.cl.cam.ac.uk/~mgk25/unicode.html⟩

       •  Bruno Haible: Unicode HOWTO.
          ⟨http://www.tldp.org/HOWTO/Unicode-HOWTO.html

СМ. ТАКЖЕ

       locale(1), setlocale(3), charsets(7), utf-8(7)

ПЕРЕВОД

       Русский    перевод    этой    страницы    руководства    был    сделан   Azamat   Hackimov
       <azamat.hackimov@gmail.com>,   Dmitriy    Ovchinnikov    <dmitriyxt5@gmail.com>,    Dmitry
       Bolkhovskikh  <d20052005@yandex.ru>,  Katrin Kutepova <blackkatelv@gmail.com>, Yuri Kozlov
       <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.