Символы или разметка?

Вопрос

Есть ряд символов Unicode похожих на управляющие, некоторые из которых выполняют такую же роль, как разметка. Какие из них я должен использовать, и которые я должен избегать?

Ответ

Ответ зависит от того, какие символы рассматриваются. Более подробную информацию вы должны прочитать в Примечании W3C и Техническом Отчете Unicode Unicode в XML и Других Языках Разметки. Эта статья суммирует часть этой информации.

Некоторые символы Unicode не могут использоваться с разметкой

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

Названия / Описание Краткое Объяснение
Разделение строк и параграфов используйте <br>, <p>, или эквивалент
Вложенные управляющие BIDI (LRE, RLE, LRO, RLO, PDF) Не рекомендуются, тем где есть разметка.
Включить/блокировать Симметричный обмен Устаревшее в Unicode
Включить/блокировать формирование Арабской формы Устаревшее в Unicode
Включить/блокировать формы Национальной цифры Устаревшее в Unicode
Межстрочных символы аннотации Используйте разметку ruby
Byte order mark / ZWNBSP Используйте только как byte order mark. Используйте Объеденитель Слова U+2060 вместо U+FEFF как ZWNBSP
Символы замены объекта Используйте разметку, например, HTML <object> или HTML <img>
Видимость для Музыкальной Записи Используйте соответствующий язык разметки
Точки кода Тега Язык Используйте lang и/или xml:lang

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

Другие подходящие символы Unicode

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

Названия / Описание Краткое Объяснение
Разные Пробел, Мягкий Дефис, Объеденитель Графемы, Неразрывный Дефис, Объеденитель Слова, и т.д.
Объеденители Нулевой ширины (ZWJ та ZWNJ) необходимые для Персидского языка
Неявные знаки направленности (LRM та RLM)
Знаки каскадирования Общая черта в арабском и сирийском скриптах
Селекторы Изменения необходимые для Монгольского языка
Символы Описания Иероглифов указывает состав иероглифов

'Совместимость символов' изменяется в зависимости от их целесообразности

Это взято из Unicode в XML и Других Языках Разметки:

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

Следующая таблица дает неполный перечень примеров.

Названия / Описание Примеры Суждения
Помещеные в круг буквы и цифры, используемые для маркеров списка ① ② ③ Ⓐ Ⓑ Ⓒ ㊂ ㊃ ㊄ ㊓ ㊔ ㊕ ㋝ ㋞ ㋟ хорошо
Номер в скобках или пунктирный номер, который используется в качестве маркера списка ⑴ ⑵ ⑶ используйте стиль маркера списка
Арабские Презентационные формы ﻉ ﻊ ﻋ ﻌ нормализуйте
Символы полуширины и полной ширины ヤ ユ ヨ ラ a b c d хорошо
Символы верхнего и нижнего индекса ¹ ² ³ ₁ ₂ ₃ используйте <sup> или <sub> разметку