Ссылка на числовые символы
Эта статья в значительной степени или полностью опирается на один источник . ( февраль 2021 г. ) |
Числовая ссылка на символ ( NCR ) — это распространенная конструкция разметки, используемая в SGML и языках разметки, производных от SGML, таких как HTML и XML . Он состоит из короткой последовательности символов , которая, в свою очередь, представляет один символ. Начиная с WebSgml , XML и HTML 4 кодовые точки универсального набора символов (UCS) Unicode , используются . NCR обычно используются для представления символов, которые не могут быть закодированы напрямую в конкретном документе (например, потому что они являются международными символами, которые не вписываются в 8-битный набор символов используемый , или потому, что они имеют особое синтаксическое значение в язык). Когда документ интерпретируется программой чтения, поддерживающей разметку, каждый NCR обрабатывается так, как если бы он был символом, который он представляет.
Примеры [ править ]
В SGML, HTML и XML следующие числовые ссылки являются допустимыми ссылками на греческую заглавную букву сигма.
Символ Юникода | Числовая база | Числовая ссылка в разметке | Эффект |
---|---|---|---|
U + 03A3 | Десятичный | Σ | С |
U + 03A3 | Десятичный | Σ | С |
U + 03A3 | Шестнадцатеричный | Σ | С |
U + 03A3 | Шестнадцатеричный | Σ | С |
U + 03A3 | Шестнадцатеричный | Σ | С |
В SGML, HTML и XML следующие числовые ссылки являются допустимыми ссылками на латинскую заглавную букву AE.
Символ Юникода | Числовая база | Числовая ссылка в разметке | Эффект |
---|---|---|---|
U + 00C6 | Десятичный | Æ | Ой |
U + 00C6 | Шестнадцатеричный | Æ | Ой |
В SGML, HTML и XML следующие числовые ссылки являются допустимыми ссылками на латинские строчные буквы Sharp s ß.
Символ Юникода | Числовая база | Числовая ссылка в разметке | Эффект |
---|---|---|---|
U + 00DF | Десятичный | ß | SS |
U + 00DF | Шестнадцатеричный | ß | SS |
Список ссылок на числовые символы для печатаемых символов ASCII :
Символ Юникода | Характер Ссылка (десятичный) | Характер Ссылка (шестнадцатеричный) | Эффект |
---|---|---|---|
U + 0020 |   |   | (космос) |
U + 0021 | ! | ! | ! |
U + 0022 | " | " | " |
U + 0023 | # | # | # |
U + 0024 | $ | $ | $ |
U + 0025 | % | % | % |
U + 0026 | & | & | & |
U + 0027 | ' | ' | ' |
U + 0028 | ( | ( | ( |
U + 0029 | ) | ) | ) |
U + 002A | * | * | * |
U + 002B | + | + | + |
U + 002C | , | , | , |
U + 002D | - | - | - |
U + 002E | . | . | . |
U + 002F | / | / | / |
U + 0030 | 0 | 0 | 0 |
U + 0031 | 1 | 1 | 1 |
U + 0032 | 2 | 2 | 2 |
U + 0033 | 3 | 3 | 3 |
U + 0034 | 4 | 4 | 4 |
U + 0035 | 5 | 5 | 5 |
U + 0036 | 6 | 6 | 6 |
U + 0037 | 7 | 7 | 7 |
U + 0038 | 8 | 8 | 8 |
U + 0039 | 9 | 9 | 9 |
U + 003A | : | : | : |
U + 003B | ; | ; | ; |
U + 003C | < | < | < |
U + 003D | = | = | = |
U + 003E | > | > | > |
U + 003F | ? | ? | ? |
U + 0040 | @ | @ | @ |
U + 0041 | A | A | А |
U + 0042 | B | B | Б |
U + 0043 | C | C | С |
U + 0044 | D | D | Д |
U + 0045 | E | E | И |
U + 0046 | F | F | Ф |
U + 0047 | G | G | Г |
U + 0048 | H | H | ЧАС |
U + 0049 | I | I | я |
U + 004A | J | J | Дж |
U + 004B | K | K | К |
U + 004C | L | L | л |
U + 004D | M | M | М |
U + 004E | N | N | Н |
U + 004F | O | O | ТО |
U + 0050 | P | P | П |
U + 0051 | Q | Q | вопрос |
U + 0052 | R | R | Р |
U + 0053 | S | S | С |
U + 0054 | T | T | Т |
U + 0055 | U | U | В |
U + 0056 | V | V | V |
U + 0057 | W | W | В |
U + 0058 | X | X | Х |
U + 0059 | Y | Y | И |
U + 005A | Z | Z | С |
U + 005B | [ | [ | [ |
U + 005C | \ | \ | \ |
U + 005D | ] | ] | ] |
U + 005E | ^ | ^ | ^ |
U + 005F | _ | _ | _ |
U + 0060 | ` | ` | ' |
U + 0061 | a | a | а |
U + 0062 | b | b | б |
U + 0063 | c | c | с |
U + 0064 | d | d | д |
U + 0065 | e | e | и |
U + 0066 | f | f | ж |
U + 0067 | g | g | г |
U + 0068 | h | h | час |
U + 0069 | i | i | я |
U + 006A | j | j | дж |
U + 006B | k | k | к |
U + 006C | l | l | л |
U + 006D | m | m | м |
U + 006E | n | n | н |
U + 006F | o | o | тот |
U + 0070 | p | p | п |
U + 0071 | q | q | д |
U + 0072 | r | r | р |
U + 0073 | s | s | с |
U + 0074 | t | t | т |
U + 0075 | u | u | в |
U + 0076 | v | v | v |
U + 0077 | w | w | В |
U + 0078 | x | x | х |
U + 0079 | y | y | и |
U + 007A | z | z | С |
U + 007B | { | { | { |
U + 007C | | | | | | |
U + 007D | } | } | } |
U + 007E | ~ | ~ | ~ |
Обсуждение [ править ]
Языки разметки обычно определяются с помощью символов UCS или Unicode. То есть документ на самом фундаментальном уровне абстракции состоит из последовательности символов, которые представляют собой абстрактные единицы, существующие независимо от какой-либо кодировки .
В идеале, когда символы документа с использованием языка разметки кодируются для хранения или передачи по сети в виде последовательности битов , используемая кодировка должна поддерживать представление каждого символа в документе, если не в весь Юникод, непосредственно как определенная последовательность битов.
Однако иногда из соображений удобства или из-за технических ограничений документы кодируются с помощью кодировки, которая не может напрямую представлять некоторые символы. Например, широко используемые кодировки на основе ISO 8859 могут представлять не более 256 уникальных символов в виде одного 8-битного байта каждый.
На практике документам редко разрешается использовать внутри себя более одной кодировки, поэтому ответственность обычно лежит на языке разметки, который должен предоставить авторам документов средства для выражения некодируемых символов через кодируемые. Обычно это делается с помощью какого-то механизма «экранирования» .
Языки разметки на основе SGML позволяют авторам документов использовать специальные последовательности символов из диапазона ASCII (первые 128 кодовых точек Юникода) для представления или ссылки на любой символ Юникода, независимо от того, доступен ли представляемый символ непосредственно в кодировка документа. Эти специальные последовательности являются ссылками на символы .
Ссылки на символы, основанные на кодовой точке 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
при использовании Юникода десятичный €
и шестнадцатеричный €
. Однако при использовании инструментов, поддерживающих устаревшие реализации HTML, ссылка €
(Знак евро в кодовой странице CP-1252 ) или ¤
(Знак евро в ISO/IEC 8859-15 ) может работать.
Другой пример: если некоторый текст изначально был создан с использованием набора символов MacRoman , левая двойная кавычка « будет представлена кодовой точкой xD2. Это не будет отображаться должным образом в системе, ожидающей документ в кодировке UTF-8, ISO 8859-1 или CP-1252, где этот код занят буквой Ò . Правильная ссылка на числовой символ для « в HTML 4 и более поздних версиях: “
, потому что U+ 201C — это его код UCS. В некоторых системах ссылка на именованный символ “
также может быть доступен.
См. также [ править ]
Ссылки [ править ]
- ^ «HTML 5.2:8. Синтаксис HTML» . www.w3.org .