Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Цифровая ссылка на символ ( NCR ) является общей разметки конструкция используется в SGML и SGML , полученных из языков разметки , такие как HTML и XML . Он состоит из короткой последовательности символов, которая, в свою очередь, представляет собой один символ. Начиная с WebSgml , XML и HTML 4 , используются кодовые точки универсального набора символов (UCS) Unicode . NCR обычно используются для представления символов, которые не кодируются напрямую.в конкретном документе (например, потому что это международные символы, которые не подходят для используемого 8-битного набора символов, или потому что они имеют особое синтаксическое значение в языке). Когда документ интерпретируется читателем с учетом разметки, каждый NCR обрабатывается так, как если бы это был символ, который он представляет.

Примеры [ править ]

В SGML, HTML и XML все нижеприведенные ссылки являются допустимыми числовыми символами для греческой заглавной буквы сигма.

В SGML, HTML и XML все нижеприведенные ссылки являются допустимыми числовыми символами для заглавной латинской буквы AE.

В SGML, HTML и XML все нижеприведенные ссылки являются допустимыми числовыми символами для строчной латинской буквы s ß.

Список ссылок на числовые символы для печатаемых символов ASCII :

Обсуждение [ править ]

Языки разметки обычно определяются с помощью символов UCS или Unicode. То есть документ состоит, на самом фундаментальном уровне абстракции, из последовательности символов, которые являются абстрактными единицами, существующими независимо от какой-либо кодировки .

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

Однако иногда по причинам удобства или из-за технических ограничений документы кодируются с использованием кодировки, которая не может представлять некоторые символы напрямую. Например, широко используемые кодировки, основанные на ISO 8859, могут представлять не более 256 уникальных символов в виде одного 8-битного байта каждый.

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

Языки разметки на основе SGML позволяют авторам документов использовать специальные последовательности символов из диапазона ASCII (первые 128 кодовых точек Unicode) для представления или ссылки на любой символ Unicode, независимо от того, доступен ли представляемый символ непосредственно в кодировка документа. Эти специальные последовательности представляют собой ссылки на символы .

Ссылки на символы, основанные на кодовой точке UCS или Unicode указанного символа, называются ссылками на числовые символы. В HTML 4 и во всех версиях XHTML и XML кодовая точка может быть выражена как десятичное (с основанием 10) число или как шестнадцатеричное (с основанием 16) число. Синтаксис следующий:

Символ U + 0026 ( амперсанд ), за которым следует символ U + 0023 ( знак числа ), за которым следует один из следующих вариантов:

  • одна или несколько десятичных цифр от нуля (U + 0030) до девяти (U + 0039); или же
  • символ U + 0078 ("x"), за которым следует одна или несколько шестнадцатеричных цифр, от нуля (U + 0030) до девяти (U + 0039), заглавная латинская буква от A (U + 0041) до F (U + 0046), и строчная латинская буква от a (U + 0061) до f (U + 0066);

за всеми следует символ U + 003B ( точка с запятой ). В старых версиях HTML шестнадцатеричный синтаксис запрещен.

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

Существует еще один вид ссылки на символ, называемый ссылкой на сущность символа , который позволяет ссылаться на символ по имени, а не по номеру. (При присвоении имени персонажу создается сущность символа .) HTML определяет некоторые сущности символа, но не многие; все остальные символы могут быть включены только путем прямого кодирования или с использованием NCR.

Ограничения [ править ]

Универсальный набор символов, определенный в ISO 10646, является «набором символов документа» SGML, HTML 4, поэтому по умолчанию любой символ в таком документе и любой символ, на который есть ссылка в таком документе, должны быть в UCS.

Хотя синтаксис SGML не запрещает ссылки на недопустимые или неназначенные кодовые точки, например , производные от SGML языки разметки, такие как HTML и XML, могут и часто ограничивают числовые символьные ссылки только теми кодовыми точками, которые присвоены символам.

Ограничения могут применяться и по другим причинам. Например, в HTML 4, который является ссылкой на непечатаемый управляющий символ «подачи формы», разрешен, потому что разрешен символ подачи формы. Но в XML нельзя использовать символ подачи формы, даже по ссылке. [1] [ необходима цитата ] В качестве другого примера, €который является ссылкой на другой управляющий символ, нельзя использовать или ссылаться на него ни в HTML, ни в XML, но при использовании в HTML он обычно не помечается как ошибка веб-браузеры - некоторые из них интерпретируют его как ссылку на символ, представленный значением кода 128 в кодировке Windows-1252 по соображениям совместимости. Этот символ "€" должен быть представлен как€в стандартном HTML-коде. В качестве еще одного примера, до публикации второго издания XML 1.0 6 октября 2000 г. XML 1.0 был основан на более старой версии ISO 10646 и запрещал использование символов выше U + FFFD, за исключением символьных данных, таким образом делая ссылку вроде 𐀀(U + 10000) незаконно. В XML 1.1 и более новых версиях XML 1.0 такая ссылка разрешена, поскольку доступный репертуар символов был явно расширен.

Языки разметки также накладывают ограничения на то, где могут встречаться ссылки на символы.

Проблемы совместимости [ править ]

В начальных версиях SGML и HTML числовые ссылки на символы интерпретировались в соответствии с кодировкой символов документа, а не с Unicode . Для документов с латинским шрифтом числовые ссылки на символы от x80 до x9F в этих документах не будут соответствовать Unicode и должны быть перекодированы. Стандарты HTML до HTML 4 поддерживали только документы с западным латинским шрифтом: обработка символьных ссылок выше # 7F может варьироваться в зависимости от приложения и национальных соглашений.

Например, как упоминалось выше, правильная ссылка на числовой символ для знака евро «€» U+20ACпри использовании Unicode - десятичная €и шестнадцатеричная €. Однако при использовании инструментов, поддерживающих устаревшие реализации HTML, ссылка € (евро в кодовой странице Cp1252 ) или ¤(евро в ISO / IEC 8859-15 ) может работать.

В качестве другого примера, если некоторый текст был создан первоначально набором символов MacRoman , левая двойная кавычка « будет представлена ​​кодовой точкой xD2. Это не будет отображаться должным образом в системе, ожидающей документ, закодированный как UTF-8, ISO 8859-1 или CP1252 , где эта кодовая точка занята буквой Ò . Правильная ссылка цифровой символ для « в HTML 4 и новее “, так как U + 201C является его UCS код. В некоторых системах также может быть доступна ссылка на именованный символ“ .

См. Также [ править ]

  • Список ссылок на символьные сущности XML и HTML

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

  1. ^ «HTML 5.2: 8. Синтаксис HTML» . www.w3.org .