Заменяющий символ — Википедия

Заменяющий символ
𐀀 𐀁 𐀂 𐀃
Характеристики
Название replacement character
Юникод U+FFFD
HTML-код � или �
UTF-16 0xFFFD
URL-код %EF%BF%BD

Заменяющий символ � — в информатике символ, который используется, когда значение символа неизвестно или не может быть выражено в Юникоде.

Этот символ находится на позиции U+FFFD[1] в группе «Специальные символы». Он — самый последний символ базовой многоязычной плоскости (следующие позиции U+FFFE и U+FFFF не заняты символами, а используются для сообщения об ошибках)[2].

Начертание[править | править код]

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

Использование[править | править код]

Символ используется при отображении текстов, сконвертированных из других кодировок в Юникод для указания на то, что символ исходного текста не имеет эквивалента в Юникоде[2]. Это может произойти из-за неправильной настройки кодировки символов.

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

Текстовый редактор может отобразить заменяющий символ в UTF-8, и при отправке файла обратно, в ISO 8859-1 на месте этого символа получится бессвязное сочетание трёх символов: f�r. Это произойдёт потому, что UTF-8 заменяющего символа — 0xEF 0xBF 0xBD. 0xEF — ï, 0xBF — ¿, 0xBD — ½, а вместе — �.

В языке программирования Java позиция U+FFFD традиционно используется для обозначения NaN, что не соотносится со значением в Юникоде[2].

Примечания[править | править код]

  1. U+FFFD REPLACEMENT CHARACTER (англ.). Дата обращения: 6 января 2013. Архивировано 27 января 2013 года.
  2. 1 2 3 Jukka K. Korpela. Unicode Explained. — "O'Reilly Media, Inc.", 2006-06-21. — 702 с. — ISBN 978-0-596-10121-3. Архивировано 7 июля 2020 года.

Ссылки[править | править код]

  • на сайте Scriptsource.org (англ.)
  • Страница на Unicode.org (англ.)

Литература[править | править код]