Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Общая конструкция разметки, используемая в SGML, XML и HTML.
Common markup construct used in SGML, XML, and HTML
Числовая ссылка на символ (NCR) – это общая конструкция разметки, используемая в SGML и языках разметки, производных от SGML, таких как HTML и XML. Она состоит из короткой последовательности символов, которая, в свою очередь, представляет один символ. Начиная с WebSgml, XML и HTML 4, используются кодовые точки универсального набора символов (UCS) Unicode. NCR обычно используются для представления символов, которые нельзя непосредственно закодировать в конкретном документе (например, потому что это международные символы, не помещающиеся в используемый 8-битный набор символов, или потому, что они имеют специальное синтаксическое значение в языке). При интерпретации документа программой, учитывающей разметку, каждый NCR обрабатывается как символ, который он представляет.
A numeric character reference (NCR) is a common markup construct used in SGML and SGML derived markup languages such as HTML and XML. It consists of a short sequence of characters that, in turn, represents a single character. Since WebSgml, XML and HTML 4, the code points of the Universal Character Set (UCS) of Unicode are used. NCRs are typically used in order to represent characters that are not directly encodable in a particular document (for example, because they are international characters that do not fit in the 8 bit character set being used, or because they have special syntactic meaning in the language). When the document is interpreted by a markup aware reader, each NCR is treated as if it were the character it represents.
Ограничения
Универсальный набор символов, определенный стандартом ISO 10646, является "набором символов документа" для SGML и HTML 4, поэтому по умолчанию любой символ в таком документе и любая ссылка на символ в таком документе должны быть представлены в UCS. Хотя синтаксис SGML не запрещает ссылки на недействительные или неназначенные кодовые точки, такие как , языки разметки, производные от SGML, такие как HTML и XML, могут и часто ограничивают числовые ссылки на символы только теми кодовыми точками, которым назначены символы. Ограничения могут применяться и по другим причинам. Например, в HTML 4 ссылка , представляющая непечатаемый управляющий символ "перевод страницы", разрешена, поскольку сам символ "перевод страницы" допустим. Однако в XML символ перевода страницы нельзя использовать, даже по ссылке. В качестве другого примера, ссылка €, представляющая другой управляющий символ, не разрешена ни в HTML, ни в XML, но при использовании в HTML она обычно не отмечается веб-браузерами как ошибка – некоторые из них интерпретируют её как ссылку на символ с кодом 128 в кодировке Windows 1252 в целях совместимости. Этот символ, "€", должен быть представлен как € в HTML-коде, соответствующем стандарту. В качестве еще одного примера, до публикации XML 1.0 Second Edition 6 октября 2000 года, XML 1.0 основывался на более ранней версии ISO 10646 и запрещал использование символов выше U+FFFD, за исключением данных символов, что делало ссылку, например, 𐀀 (U+10000), недопустимой. В XML 1.1 и более поздних версиях XML 1.0 такая ссылка разрешена, поскольку доступный репертуар символов был явно расширен. Языки разметки также накладывают ограничения на места, где могут появляться ссылки на символы.
The Universal Character Set defined by ISO 10646 is the "document character set" of SGML, HTML 4, so by default, any character in such a document, and any character referenced in such a document, must be in the UCS. While the syntax of SGML does not prohibit references to invalid or unassigned code points, such as , SGML derived markup languages such as HTML and XML can, and often do, restrict numeric character references to only those code points that are assigned to characters. Restrictions may also apply for other reasons. For example, in HTML 4, , which is a reference to a non printing "form feed" control character, is allowed because a form feed character is allowed. But in XML, the form feed character cannot be used, not even by reference. As another example, €, which is a reference to another control character, is not allowed to be used or referenced in either HTML or XML, but when used in HTML, it is usually not flagged as an error by web browsers – some of which interpret it as a reference to the character represented by code value 128 in the Windows 1252 encoding for compatibility reasons. This character, "€", has to be represented as € in a standard compliant HTML code. As a further example, prior to the publication of XML 1.0 Second Edition on October 6, 2000, XML 1.0 was based on an older version of ISO 10646 and prohibited using characters above U+FFFD, except in character data, thus making a reference like 𐀀 (U+10000) illegal. In XML 1.1 and newer editions of XML 1.0, such a reference is allowed, because the available character repertoire was explicitly extended. Markup languages also place restrictions on where character references can occur.
Вопросы совместимости
В ранних версиях SGML и HTML числовые ссылки на символы интерпретировались в соответствии с кодировкой символов документа, а не с Unicode. Для документов, использующих латинский шрифт, числовые ссылки на символы в диапазоне x80–x9F в этих документах будут некорректными при сопоставлении с Unicode и должны быть перекодированы. Стандарты HTML до HTML 4 поддерживали только документы с использованием западноевропейской латинской кодировки: обработка ссылок на символы с кодом выше #7F может различаться в зависимости от приложений и национальных стандартов. Например, как упоминалось выше, правильная числовая ссылка на символ евро "€" U+20AC при использовании Unicode – десятичная € и шестнадцатеричная €. Однако, если используются инструменты, поддерживающие устаревшие реализации HTML, ссылка € (символ евро в кодовой странице CP 1252) или ¤ (символ евро в ISO/IEC 8859-15) может работать. В качестве другого примера, если текст изначально был создан с использованием набора символов MacRoman, левая двойная кавычка будет представлена кодовой точкой xD2. Она не будет отображаться правильно в системе, ожидающей документ, закодированный в UTF-8, ISO 8859-1 или CP 1252, где эта кодовая точка занята буквой Ò. Правильная числовая ссылка на символ в HTML 4 и более поздних версиях – “, поскольку U+201C – это его код UCS. В некоторых системах также может быть доступна именованная ссылка на символ “.
In the initial versions of SGML and HTML, numeric character references were interpreted in relationship to the document character encoding, rather than Unicode. For Latin script documents, numeric character references to characters between x80 and x9F in those documents will not be correct against Unicode, and must be recoded. HTML standards prior to HTML 4 supported only Western Latin script documents: the treatment of character references above #7F may vary between applications and national conventions. For example, as mentioned above, the correct numeric character reference for the Euro sign "€" U+20AC when using Unicode is decimal € and hexadecimal €. However, if using tools supporting obsolete implementations of HTML, the reference € (Euro sign in the CP 1252 code page) or ¤ (Euro sign in ISO/IEC 8859 15) may work. As another example, if some text was created originally using the MacRoman character set, the left double quotation mark will be represented with code point xD2. This will not display properly in a system expecting a document encoded as UTF 8, ISO 8859 1, or CP 1252, where this code point is occupied by the letter Ò. The correct numeric character reference for in HTML 4 and newer is “, because U+201C is its UCS code. In some systems, the named character reference “ may also be available.