Специальные предложения (блок Unicode)

Блок Unicode, содержащий несколько специальных кодовых точек и два несимвола
Блок символов Unicode
Специальные предложения
ДиапазонU+FFF0..U+FFFF
(16 кодовых точек)
СамолетБМП
СкриптыОбщий
Назначенный5 кодовых точек
Неиспользованный9 зарезервированных кодовых точек
2 несимвола
История версий Unicode
1.0.0 (1991)1 (+1)
2.1 (1998)2 (+1)
3.0 (1999)5 (+3)
Документация по Юникоду
Кодовая таблица ∣ Веб-страница
Примечание : [1] [2]

Специальные символы — это короткий блок символов Unicode , расположенный в самом конце базовой многоязычной плоскости , в позиции U+FFF0–FFFF, содержащий следующие кодовые точки :

  • U+FFF9 ЯКОРЬ МЕЖСТРОЧНОЙ АННОТАЦИИ , отмечает начало аннотированного текста
  • U+FFFA РАЗДЕЛИТЕЛЬ МЕЖСТРОЧНОЙ АННОТАЦИИ , отмечает начало символа(ов) аннотации
  • U+FFFB ТЕРМИНАТОР МЕЖЛИНЕЙНОЙ АННОТАЦИИ , отмечает конец блока аннотации
  • U+FFFC СИМВОЛ ЗАМЕНЫ ОБЪЕКТА , заполнитель в тексте для другого неуказанного объекта, например, всоставном документе.
  • U+FFFD � ЗАМЕНЯЮЩИЙ СИМВОЛ, используемый для замены неизвестного, нераспознанного или непредставимого символа
  • U+FFFE <несимвол- FFFE> не персонаж.
  • U+FFFF <несимвол- FFFF> не персонаж.

U+FFFE <несимвол- FFFE> и U+FFFF <несимвол- FFFF> являются несимволами , то есть они зарезервированы, но не приводят к неправильному формированию текста Unicode. Версии стандарта Unicode с 3.1.0 по 6.3.0 утверждали, что эти символы никогда не должны меняться местами, что привело к тому, что некоторые приложения использовали их для угадывания кодировки текста, интерпретируя наличие любого из них как признак того, что текст не является Unicode. Однако позже в исправлении № 9 было указано, что несимволы не являются незаконными, и поэтому этот метод проверки кодировки текста неверен. [3] Примером внутреннего использования U+FFFE является алгоритм CLDR ; этот расширенный алгоритм Unicode сопоставляет несимвол с минимальным уникальным первичным весом. [4]

Символ Unicode U+FEFF ZERO WIDTH NO-BREAK SPACE может быть вставлен в начало текста Unicode для обозначения порядка байтов : программа, читающая такой текст и встречающая 0xFFFE, будет знать, что ей следует изменить порядок байтов для всех последующих символов.

Его название блока в Unicode 1.0 было Special . [5]

Заменяющий символ

Заменяющий символ

Заменяющий символ � ( часто отображается как черный ромб с белым вопросительным знаком) — это символ, который находится в стандарте Unicode в кодовой точке U+FFFD в таблице Specials . Он используется для указания проблем, когда система не может отобразить поток данных для исправления символов. [6]

Например, текстовый файл, закодированный в ISO 8859-1 , содержащий немецкое слово für, содержит байты 0x66 0xFC 0x72. Если этот файл открыть с помощью текстового редактора, который предполагает, что входные данные — UTF-8 , первый и третий байты являются допустимыми кодировками UTF-8 ASCII , но второй байт ( 0xFC) недопустим в UTF-8. Текстовый редактор может заменить этот байт заменяющим символом, чтобы создать допустимую строку кодовых точек Unicode для отображения, поэтому пользователь увидит «f�r».

Плохо реализованный текстовый редактор может записать заменяющий символ, когда пользователь сохраняет файл; тогда данные в файле станут 0x66 0xEF 0xBF 0xBD 0x72. Если файл повторно открыть с использованием ISO 8859-1, он отобразит "f�r" (это называется mojibake ). Поскольку замена одинакова для всех ошибок, восстановить исходный символ невозможно. Более удачный (но более сложный в реализации) дизайн заключается в сохранении исходных байтов, включая любые ошибки, и преобразовании в замену только при отображении текста. Это позволит текстовому редактору сохранить исходную последовательность байтов, при этом показав пользователю индикацию ошибки.

В свое время символ замены часто использовался, когда в шрифте не было глифа для этого символа, как в font substitution . Однако большинство современных систем рендеринга текста вместо этого используют символ .notdef шрифта , который в большинстве случаев представляет собой пустой квадрат или "?" или "X" в квадрате [7] (этот браузер отображает �), иногда называемый ' tofu '. Для этого символа нет кодовой точки Unicode.

Таким образом, символ замены теперь виден только для ошибок кодировки. Некоторые программы преобразуют недействительные байты UTF-8 в соответствующие символы в Windows-1252 (поскольку это наиболее распространенный источник этих ошибок), так что символ замены никогда не виден.

Таблица Юникода

Специальные предложения [1] [2] [3] Официальная таблица кодов Консорциума Unicode (PDF)
 0123456789АБСДЭФ
U+FFFxИААМСФОИАТ
Примечания
1. ^ Начиная с версии Unicode 16.0
2. ^ Серые области обозначают неназначенные кодовые точки.
3. ^ Черные области обозначают несимволы (кодовые точки, которые гарантированно никогда не будут назначены в качестве закодированных символов в стандарте Unicode)

История

В следующих документах, связанных с Unicode, описаны цель и процесс определения конкретных символов в блоке Specials:

Смотрите также

Ссылки

  1. ^ "База данных символов Unicode". Стандарт Unicode . Получено 2023-07-26 .
  2. ^ "Перечисленные версии стандарта Unicode". Стандарт Unicode . Получено 2023-07-26 .
  3. ^ "Исправление № 9: Разъяснение о несимволах". Стандарт Unicode . Архивировано из оригинала 10 июня 2023 г. Получено 07.06.2023 .
  4. ^ "Технический стандарт Unicode № 35". Язык разметки данных локали Unicode (LDML) . Получено 2024-08-27 .{{cite web}}: CS1 maint: url-status ( ссылка )
  5. ^ "3.8: Поблочные диаграммы" (PDF) . Стандарт Unicode . Версия 1.0. Консорциум Unicode . Архивировано (PDF) из оригинала 2021-02-11 . Получено 2020-09-30 .
  6. ^ Wichary, Marcin (29 сентября 2020 г.). «When fonts fall». Figma. Архивировано из оригинала 13 июня 2021 г. Получено 6 июня 2021 г.
  7. ^ "Рекомендации по шрифтам OpenType (OpenType 1.7) - Типографика". Microsoft Learn . Архивировано из оригинала 19 октября 2020 г. Получено 18 октября 2020 г.
Взято с "https://en.wikipedia.org/w/index.php?title=Specials_(Unicode_block)&oldid=1252597903"