Спеціальні символи (Specials) — це короткий блок символів Юнікоду, розміщений у самому кінці базової багатомовної площини (Basic Multilingual Plane), за адресами U+FFF0 – FFFF, який містить такі кодові точки :
, позначає початок анотованого тексту , позначає початок анотуючого символу (символів) , позначає кінець блоку анотації , заповнювач у тексті для іншого невизначеного об'єкта, наприклад у складеному документі. використовується для заміни невідомого, нерозпізнаного або непредставного символу не є символом. не є символом.
та є несимволами, тобто вони зарезервовані, але не спричиняють некоректного тексту Unicode. Версії стандарту Unicode від 3.1.0 до 6.3.0 стверджували, що ці символи ніколи не повинні обмінюватися, що призвело до того, що деякі програми використовували їх для визначення кодування тексту, інтерпретуючи наявність будь-якого з них як ознаку того, що текст не є Unicode. Однак виправлення № 9 пізніше уточнило, що несимволи не є незаконними, тому цей метод перевірки кодування тексту є неправильним. Прикладом внутрішнього використання U+FFFE є Алгоритм CLDR; цей розширений алгоритм Unicode відображає несимвол на мінімальну унікальну первинну вагу.Символ Unicode можна вставити на початку тексту Unicode як маркер послідовності байтів для сигналізації його порядку байтів: програма, яка читає текст, закодований, наприклад, у UTF-16, і зустрічає , тоді знатиме, що вона повинна змінити порядок байтів для всіх наступних символів.
Його назва блоку в Unicode 1.0 була Special.
Символ заміни
Символ заміни � часто відображається як чорний ромб із білим знаком питання) – це символ, що знаходиться у стандарті Unicode у кодовій точці U+FFFD у таблиці «Спеціальні значення» . Він використовується для позначення проблем, коли система не може відобразити потік даних для корекції символів.
Як приклад, текстовий файл, закодований у стандарті ISO 8859-1, що містить німецьке слово містить байти 0x66 0xFC 0x72 . Якщо цей файл відкрити текстовим редактором, який припускає, що вхідні дані є UTF-8, перший і третій байти є дійсними кодуваннями ASCII UTF-8, але другий байт (0xFC) недійсний в UTF-8. Текстовий редактор може замінити цей байт символом заміни, щоб створити дійсний рядок кодових точок Unicode для відображення, таким чином користувач бачитиме "f � ".
Погано реалізований текстовий редактор може виписати символ заміни (0xEF 0xBF 0xBD), коли користувач зберігає файл; дані у файлі тоді стануть 0x66 0xEF 0xBF 0xBD 0x72 . Якщо файл знову відкрити за допомогою ISO 8859-1, він відобразить "f�r" (це називається mojibake). Оскільки заміна однакова для всіх помилок, відновити оригінальний символ неможливо.
Колись символ заміни часто використовувався, коли в шрифті не було доступного гліфа для цього символу, як у випадку заміни шрифту. Однак більшість сучасних систем візуалізації тексту замість цього використовують шрифт. Символ, який у більшості випадків є порожнім полем, або "?", або "X" у полі (цей браузер відображає ֏��), іноді називається «тофу». Для цього символу немає кодової точки Unicode.
Таким чином, символ заміни тепер видно лише для помилок кодування. Деякі програми перетворюють недійсні байти UTF-8 на відповідні символи у Windows-1252 (оскільки це найпоширеніше джерело цих помилок), так що символ заміни ніколи не видно.
Діаграма Юнікоду
Історія У наступних документах, пов'язаних з Unicode, зафіксовано мету та процес визначення певних символів у блоці Specials: VersionCountUTC IDL2 IDWG2 IDDocument1.0.0U+FFFD1(to be determined)U+FFFE..FFFF2(to be determined) doc)N24032.1U+FFFC1N1365N1353N1603N1681N18943.0U+FFF9..FFFB3N1727N1703 html)N1861 doc)N1920 html, doc) doc)
Див. також
Посилання