Заменяющий символ
Заменяющий символ | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
� | ||||||||||||
|
||||||||||||
Характеристики | ||||||||||||
Название | 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].
Примечания[править | править код]
- ↑ U+FFFD � REPLACEMENT CHARACTER (англ.). Дата обращения: 6 января 2013. Архивировано 27 января 2013 года.
- ↑ 1 2 3 Jukka K. Korpela. Unicode Explained. — "O'Reilly Media, Inc.", 2006-06-21. — 702 с. — ISBN 978-0-596-10121-3. Архивировано 7 июля 2020 года.
Ссылки[править | править код]
Литература[править | править код]
- Лучано Рамальо. Python. К вершинам мастерства. — Litres, 2019-11-01. — 770 с. — ISBN 978-5-04-041745-2. Архивная копия от 20 июля 2020 на Wayback Machine
- Jukka K. Korpela. Unicode Explained. — "O'Reilly Media, Inc.", 2006-06-21. — 702 с. — ISBN 978-0-596-10121-3. Архивная копия от 20 июля 2020 на Wayback Machine
- Unicode Consortium. The Unicode Standard: Worldwide Character Encoding. — Addison-Wesley Pub., 1991. — 710 с. — ISBN 978-0-201-56788-5. Архивная копия от 20 июля 2020 на Wayback Machine