Что такое Unicode на компьютере

Обновлено: 03.07.2024

Юникод — это универсальная система кодирования, обеспечивающая полный набор символов. Она была создана Консорциумом Юникод (группой производителей многоязычного программного обеспечения). Unicode упрощает локализацию программного обеспечения и улучшает многоязычную обработку текста. Он преодолевает трудности, присущие ASCII и расширенному ASCII.

Юникод стандартизирует поведение скриптов, что позволяет любой комбинации символов из любой комбинации скриптов и языков сосуществовать в одном документе. Unicode определяет несколько кодировок одного набора символов: UTF-7, UTF-8, UTF-16 и UTF-32. Преобразование данных между этими кодировками происходит без потерь.

Юникод изначально был двухбайтовым набором символов. Однако Unicode версии 3 представляет собой 4-байтовый код и полностью совместим с ASCII и расширенным ASCII.

  • UTF-8 использует от 1 до 4 байтов на символ в зависимости от символа, но ASCII занимает только 1 байт и 4 байта для необычных символов.
  • UTF-16 использует 2 байта для большинства символов, а очень необычные символы занимают 4.
  • UTF-32 использует 4 байта на символ. Мы можем вычислить количество символов в строке UTF-32, считая только байты.

В записи используются шестнадцатеричные цифры следующего формата.

U-XXXXXXXX —
нумерация идет от U-00000000 до U-FFFFFFFF. Юникод делит доступные пробелы на плоскости. Самолет представляет собой непрерывную группу из 65 536 кодовых точек. Старшие 16 бит определяют плоскость (т. е. количество плоскостей = 65 535), и каждая плоскость может определять до 65 536 знаков или символов.

  1. Базовая многоязычная плоскость (BMP) — плоскость 0000, базовая многоязычная плоскость разработана для совместимости с предыдущим 16-битным Unicode. Старшие 16 битов в этой плоскости все нули. В основном он определяет наборы символов на разных языках, за исключением некоторых управляющих и специальных символов. Он представлен как U+XXXX, где XXXX — младшие 16 битов, т.е. От U+0900 до U+09FF зарезервировано для деванагари, от U+2200 до U+22FF зарезервировано для математической операции и т. д.
  2. Дополнительная многоязычная плоскость (SMP) — плоскость 0001, дополнительная многоязычная плоскость, предназначена для предоставления большего количества кодов для тех многоязычных символов, которые исключены из BMP. Пример: 10140–1018F зарезервированы для древнегреческих чисел.
  3. Дополнительная идеографическая плоскость (SIP). Плоскость 0002, дополнительная идеографическая плоскость, предназначена для предоставления кодов идеографических символов, символов, которые передают идею, а не звук, например, 20000-2A6DF зарезервированы для унифицированного расширения CJK B.
  4. Дополнительная специальная плоскость (SSP) — 000E, дополнительная специальная плоскость, используется для специальных символов, например, E0000–E007F зарезервированы для тегов.
  5. Самолеты для частного использования (PUP) — самолеты 000F и 0010, самолеты для частного использования предназначены для частного использования. Они используются шрифтами внутри для обозначения вспомогательных глифов.

Пожалуйста, напишите комментарии, если обнаружите что-то неверное или хотите поделиться дополнительной информацией по теме, обсуждавшейся выше.

Юникод – это компьютерный стандарт, цель которого – обеспечить единую кодировку и представление символов, а также любых символов в целом, которые используются в большинстве письменных языков мира.

До Юникода

По сути, компьютеры могут понимать и взаимодействовать только с числами. Мы можем видеть текст на экранах наших компьютеров, но под ним, внутри компьютерных цепей, все закодировано как числа в двоичной форме, где каждая буква или символ представлены числом. Сопоставление букв/символов с числами осуществляется с помощью набора символов, который представляет собой предварительно определенный список символов и присвоенных им номеров, распознаваемых аппаратным и программным обеспечением компьютера.

Один из наиболее распространенных наборов символов, называемый ASCII, использует числа от 0 до 127 для представления всех английских символов, а также специальных управляющих символов. Европейские наборы символов ISO аналогичны ASCII, но содержат дополнительные символы для европейских языков.

До недавнего времени проблемы совместимости между компьютерными системами, использующими разные наборы символов, были очень распространены. Типичным примером являются FTP-серверы, имена файлов которых содержат текст с использованием другого набора символов по сравнению с компьютером пользователя, использующим клиентское приложение FTP. В этом примере сервер может использовать восточноазиатский набор символов (например, японский), а компьютер пользователя, на котором запущен FTP-клиент, использует европейский набор символов (например, центральноевропейский). Список файлов сервера на экране пользователя будет нечитаемым и бессмысленным из-за того, что разные наборы символов используются с конфликтующими назначениями букв/символов, поскольку обе стороны используют разные языки для интерпретации одного и того же числа, связанного с буквами.

Аналогичные проблемы существовали с веб-страницами, написанными на языках, использующих наборы символов, которые не «понимаются» веб-браузерами автоматически, но пользователям приходилось указывать браузеру, какую кодировку использовать, чтобы иметь возможность правильно отображать страницы.

Введите Юникод

Проблемы несовместимости, длившиеся десятилетиями, привели к разработке и внедрению стандарта Unicode. Это изменило все, определив уникальный номер для каждого возможного знака/символа, используемого во всем мире, независимо от компьютера, операционной системы, приложения или языка.

Он был принят всеми современными операционными системами и поставщиками программного обеспечения (включая 2BrightSparks и его приложения SyncBack) и теперь позволяет передавать данные через множество различных платформ, устройств и приложений без искажений и без необходимости использования таблиц преобразования. Кроме того, это позволяет отображать пользовательские интерфейсы на нескольких языках на одном устройстве или вводить документ в текстовом процессоре более чем на одном языке, поскольку теперь устройство может отображать несколько языков.

Приложения SyncBack поддерживают Unicode, что позволяет правильно сохранять имена файлов между источником и местом назначения во время передачи файлов при условии, что исходное и целевое расположение также поддерживают Unicode. Кроме того, Unicode позволяет пользователям SyncBack мгновенно отображать пользовательский интерфейс приложения на разных языках в любой современной установке Windows без необходимости установки отдельных языковых пакетов.

Подводные камни

Возможно, Unicode решил многие проблемы, но, как бы хорош он ни был, он все еще может вызывать проблемы у пользователей. Примером этого является проблема уникальности имени файла.

Возьмите, к примеру, два следующих имени файла (которые вы можете загрузить в формате 7-Zip):

  • êà.txt – содержит кодовые точки Unicode65 302 61 300
  • êà.txt – содержит кодовые точки Unicode ea e0
  • .

Они выглядят одинаково, но базовая реализация байтов для каждого из них отличается. Это называется эквивалентностью Unicode, и если бы файлы использовали вышеуказанные имена, то Windows рассматривала бы их как разные файлы, и их можно было бы одновременно разместить в одном каталоге. Это означает, что могут быть созданы два отдельных файла с одним и тем же визуальным именем файла (т. е. имена файлов визуально выглядят одинаково), но с разной байтовой реализацией имени файла (т. е. имена файлов на самом деле не совпадают).

Это может вызвать проблемы для определенных приложений и/или рабочих процессов, и что касается SyncBack, эти файлы обрабатываются как разные, поэтому их можно создавать резервные копии/восстановлять до тех пор, пока целевое хранилище может их принять.

Юникод — это универсальная система кодирования, обеспечивающая полный набор символов. Она была создана Консорциумом Юникод (группой производителей многоязычного программного обеспечения). Unicode упрощает локализацию программного обеспечения и улучшает многоязычную обработку текста. Он преодолевает трудности, присущие ASCII и расширенному ASCII.

Юникод стандартизирует поведение скриптов, что позволяет любой комбинации символов из любой комбинации скриптов и языков сосуществовать в одном документе. Unicode определяет несколько кодировок одного набора символов: UTF-7, UTF-8, UTF-16 и UTF-32. Преобразование данных между этими кодировками происходит без потерь.

Юникод изначально был двухбайтовым набором символов. Однако Unicode версии 3 представляет собой 4-байтовый код и полностью совместим с ASCII и расширенным ASCII.

  • UTF-8 использует от 1 до 4 байтов на символ в зависимости от символа, но ASCII занимает только 1 байт и 4 байта для необычных символов.
  • UTF-16 использует 2 байта для большинства символов, а очень необычные символы занимают 4.
  • UTF-32 использует 4 байта на символ. Мы можем вычислить количество символов в строке UTF-32, считая только байты.

В записи используются шестнадцатеричные цифры следующего формата.

U-XXXXXXXX —
нумерация идет от U-00000000 до U-FFFFFFFF. Юникод делит доступные пробелы на плоскости. Самолет представляет собой непрерывную группу из 65 536 кодовых точек. Старшие 16 бит определяют плоскость (т. е. количество плоскостей = 65 535), и каждая плоскость может определять до 65 536 знаков или символов.

  1. Базовая многоязычная плоскость (BMP) — плоскость 0000, базовая многоязычная плоскость разработана для совместимости с предыдущим 16-битным Unicode. Старшие 16 битов в этой плоскости все нули. В основном он определяет наборы символов на разных языках, за исключением некоторых управляющих и специальных символов. Он представлен как U+XXXX, где XXXX — младшие 16 битов, т.е. От U+0900 до U+09FF зарезервировано для деванагари, от U+2200 до U+22FF зарезервировано для математической операции и т. д.
  2. Дополнительная многоязычная плоскость (SMP) — плоскость 0001, дополнительная многоязычная плоскость, предназначена для предоставления большего количества кодов для тех многоязычных символов, которые исключены из BMP. Пример: 10140–1018F зарезервированы для древнегреческих чисел.
  3. Дополнительная идеографическая плоскость (SIP). Плоскость 0002, дополнительная идеографическая плоскость, предназначена для предоставления кодов идеографических символов, символов, которые передают идею, а не звук, например, 20000-2A6DF зарезервированы для унифицированного расширения CJK B.
  4. Дополнительная специальная плоскость (SSP) — 000E, дополнительная специальная плоскость, используется для специальных символов, например, E0000–E007F зарезервированы для тегов.
  5. Самолеты для частного использования (PUP) — самолеты 000F и 0010, самолеты для частного использования предназначены для частного использования. Они используются шрифтами внутри для обозначения вспомогательных глифов.

Пожалуйста, напишите комментарии, если обнаружите что-то неверное или хотите поделиться дополнительной информацией по теме, обсуждавшейся выше.

По сути, компьютеры работают только с числами. Они хранят буквы и другие символы, присваивая каждому номер. До изобретения Unicode существовали сотни различных систем, называемых кодировками символов, для присвоения этих чисел. Эти ранние кодировки символов были ограничены и не могли содержать достаточно символов, чтобы охватить все языки мира. Даже для одного языка, такого как английский, ни одна кодировка не подходила для всех широко используемых букв, знаков препинания и технических символов.

Ранние кодировки символов также конфликтовали друг с другом. То есть две кодировки могут использовать один и тот же номер для двух разных символов или использовать разные номера для одного и того же символа. Любой данный компьютер (особенно серверы) должен поддерживать множество различных кодировок. Однако когда данные передаются через разные компьютеры или между разными кодировками, эти данные могут быть повреждены.

Символы Юникода

Юникод все изменил!

Стандарт Unicode обеспечивает уникальный номер для каждого символа, независимо от платформы, устройства, приложения или языка. Он был принят всеми современными поставщиками программного обеспечения и теперь позволяет передавать данные через множество различных платформ, устройств и приложений без повреждения. Поддержка Unicode формирует основу для представления языков и символов во всех основных операционных системах, поисковых системах, браузерах, ноутбуках и смартфонах, а также в Интернете и всемирной паутине (URL-адреса, HTML, XML, CSS, JSON и т. д.). ). Поддержка Unicode — лучший способ реализовать ISO/IEC 10646.

Появление стандарта Unicode и доступность поддерживающих его инструментов относятся к числу наиболее значительных последних глобальных тенденций в области программных технологий.

О Консорциуме Unicode

Консорциум Unicode — это некоммерческая организация 501(c)(3), основанная для разработки, расширения и продвижения использования стандарта Unicode и связанных с ним стандартов глобализации, которые определяют представление текста в современных программных продуктах и ​​других стандартах. Консорциум поддерживается финансово за счет членских взносов и пожертвований. Членство в Консорциуме Unicode открыто для организаций и частных лиц во всем мире, которые поддерживают стандарт Unicode и желают помочь в его расширении и внедрении. Всем предлагается внести свой вклад в поддержку важной работы Консорциума, сделав пожертвование.

Дополнительную информацию см. в стандарте Unicode, в разделе часто задаваемых вопросов и в списке членов Unicode.

Ищете переводы?

На этой странице раньше размещалась серия переводов на множество разных языков и алфавитов, отчасти для того, чтобы подчеркнуть масштаб и использование стандарта Unicode. Однако исходное текстовое содержимое страницы нуждалось в обновлении, и управление обновлением всех отдельных переводов для обеспечения соответствия было невозможным. Для архивных целей старый текст Что такое Unicode? страница и многочисленные оригинальные переводы, связанные с этой страницы, все еще доступны. Однако используйте этот текст с осторожностью, поскольку он устарел.

В настоящее время реализации Unicode настолько широко распространены, что их легко найти в Интернете на многих языках и в разных алфавитах. В частности, обращение к любой странице в Википедии сразу же позволит вам перейти к аналогичным страницам на других языках и в других системах письма, активно поддерживаемых большим сообществом редакторов Википедии. В Википедии миллионы статей, и все они используют стандарт Unicode для представления текста.

Юникод – это компьютерный стандарт, цель которого – обеспечить единую кодировку и представление символов, а также любых символов в целом, которые используются в большинстве письменных языков мира.

До Юникода

По сути, компьютеры могут понимать и взаимодействовать только с числами.Мы можем видеть текст на экранах наших компьютеров, но под ним, внутри компьютерных цепей, все закодировано как числа в двоичной форме, где каждая буква или символ представлены числом. Сопоставление букв/символов с числами осуществляется с помощью набора символов, который представляет собой предварительно определенный список символов и присвоенных им номеров, распознаваемых аппаратным и программным обеспечением компьютера.

Один из наиболее распространенных наборов символов, называемый ASCII, использует числа от 0 до 127 для представления всех английских символов, а также специальных управляющих символов. Европейские наборы символов ISO аналогичны ASCII, но содержат дополнительные символы для европейских языков.

До недавнего времени проблемы совместимости между компьютерными системами, использующими разные наборы символов, были очень распространены. Типичным примером являются FTP-серверы, имена файлов которых содержат текст с использованием другого набора символов по сравнению с компьютером пользователя, использующим клиентское приложение FTP. В этом примере сервер может использовать восточноазиатский набор символов (например, японский), а компьютер пользователя, на котором запущен FTP-клиент, использует европейский набор символов (например, центральноевропейский). Список файлов сервера на экране пользователя будет нечитаемым и бессмысленным из-за того, что разные наборы символов используются с конфликтующими назначениями букв/символов, поскольку обе стороны используют разные языки для интерпретации одного и того же числа, связанного с буквами.

Аналогичные проблемы существовали с веб-страницами, написанными на языках, использующих наборы символов, которые не «понимаются» веб-браузерами автоматически, но пользователям приходилось указывать браузеру, какую кодировку использовать, чтобы иметь возможность правильно отображать страницы.

Введите Юникод

Проблемы несовместимости, длившиеся десятилетиями, привели к разработке и внедрению стандарта Unicode. Это изменило все, определив уникальный номер для каждого возможного знака/символа, используемого во всем мире, независимо от компьютера, операционной системы, приложения или языка.

Он был принят всеми современными операционными системами и поставщиками программного обеспечения (включая 2BrightSparks и его приложения SyncBack) и теперь позволяет передавать данные через множество различных платформ, устройств и приложений без искажений и без необходимости использования таблиц преобразования. Кроме того, это позволяет отображать пользовательские интерфейсы на нескольких языках на одном устройстве или вводить документ в текстовом процессоре более чем на одном языке, поскольку теперь устройство может отображать несколько языков.

Приложения SyncBack поддерживают Unicode, что позволяет правильно сохранять имена файлов между источником и местом назначения во время передачи файлов при условии, что исходное и целевое расположение также поддерживают Unicode. Кроме того, Unicode позволяет пользователям SyncBack мгновенно отображать пользовательский интерфейс приложения на разных языках в любой современной установке Windows без необходимости установки отдельных языковых пакетов.

Подводные камни

Возможно, Unicode решил многие проблемы, но, как бы хорош он ни был, он все еще может вызывать проблемы у пользователей. Примером этого является проблема уникальности имени файла.

Возьмите, к примеру, два следующих имени файла (которые вы можете загрузить в формате 7-Zip):

  • êà.txt – содержит кодовые точки Unicode65 302 61 300
  • êà.txt – содержит кодовые точки Unicode ea e0
  • .

Они выглядят одинаково, но базовая реализация байтов для каждого из них отличается. Это называется эквивалентностью Unicode, и если бы файлы использовали вышеуказанные имена, то Windows рассматривала бы их как разные файлы, и их можно было бы одновременно разместить в одном каталоге. Это означает, что могут быть созданы два отдельных файла с одним и тем же визуальным именем файла (т. е. имена файлов визуально выглядят одинаково), но с разной байтовой реализацией имени файла (т. е. имена файлов на самом деле не совпадают).

Это может вызвать проблемы для определенных приложений и/или рабочих процессов, и что касается SyncBack, эти файлы обрабатываются как разные, поэтому их можно создавать резервные копии/восстановлять до тех пор, пока целевое хранилище может их принять.

Читайте также: