Прискорююча кнопка n назначена для пропусків при навігації по сторінкам. Пропуск для переходу на початок контента.
Даний документ є перекладом. У випадку будь-яких невідповідностей і помилок остання версія документу англійською мовою повинна розглядатися як офіційна. Першопочаткове авторське право належить W3C, як це вказано нижче.
Перекладач: Alexandr Shlapak (Александр Шлапак)
Аудиторія: шифрувальники XHTML/HTML (використовуючи редактори або скрипти), розробники скриптів (PHP, JSP, і т.д.)
Як працювати з керуючими кодами (тобто 'C0' U+0000-U+001F та 'C1' U+007F-U+009F діапазони) в XML, XHTML та HTML?
Застарілі програми іноді створюють дані, що відображають керуючі коди. Тому іноді може бути важливим зрозуміти, як підтримуються контрольні коди в мовах розмітки, при перенесенні таких додатків або їхніх даних в Інтернет.
Є два діапазони Unicode Character Set (Набору Символів), що призначені як керуючі коди. Стандарт Unicode не дозволяє особливого використання цих керуючих кодів і залишає їх визначення для додатку. Якщо програма не визначає їх використання, то вони повинні бути інтерпретовані відповідно до семантики ISO/IEC 6429. Більшість з вас дізнаються чимало з 6429 керуючих кодів: ACK, NAK, BEL, LF, FF, VT, CR, та інші. ISO 8859 та інші символьні стандарти базують свої керуючі коди на стандарті ISO 6429.
Керуючі коди в діапазоні U+0000-U+001F відомі як "C0" діапазон. Цей діапазон починається з NUL (Null) U+0000. Керуючі коди в діапазоні U+0080-U+009F відомі як "C1" діапазон. DEL (Delete) U+007F також керуючий код і примикає до початку Діапазону C1.
Керуючі коди повинні бути замінені на відповідну розмітку. Оскільки XML забезпечує стандартний спосіб кодування структурованих даних, при представленні керуючих кодів відмінних від розмітки будуть скасовані фактичні переваги використання XML. Не потрібно використовувати керуючі коди в HTML та XHTML, так як ці мови розмітки створені для представлення тексту, а не даних. Така інформація повинна знадобитися лише в одному рідкісному випадку, коли застарілі дані, які містять керуючі коди не можна очистити.
Якщо дані в дійсності не текстові, а бінарні, то більш практичним може бути, закодувати їх, наприклад, з використанням base64 (позиційна система числення з основою 64) або шістнадцяткових значень, для забезпечення використання тільки підтримуваних символів в тексті мови розмітки. (І, звичайно, декодування тексту при читанні файлів.) Зверніть увагу, що Схема XML забезпечує типи даних для цих кодувань.
Інша альтернатива - зберігати дані у зовнішньому документі і посилатися на нього з документа XML.
Якщо вам необхідно представити контрольний код в XML 1.1, то явно найпростішою альтернативою є використання NCR (числове посилання). Наприклад, керуючий код ESC (Escape) U+001B буде представлений або  (шістнадцятковими) або  (десятковими) Числовими Посиланнями.
Нижче наводиться таблиця, що підсумовує які мови розмітки підтримують керуючі коди:
| Керуючі коди | Діапазон | HTML 4 | XHTML 1.0 | XML 1.0 | XML 1.1 |
|---|---|---|---|---|---|
| C0, за винятком HT, LF, CR | U+0000 (NUL) | Не дозволено | Не дозволено | Не дозволено | Не дозволено |
| U+0001-U+001F | Не дозволено | Не дозволено | Не дозволено | NCR | |
| HT, LF, CR | U+0009, U+000A, U+000D | Підтримується | Підтримується | Підтримується | Підтримується |
| DEL + C1 | U+007F-U+009F | Не дозволено | Не дозволено | Підтримується | NCR |
| NEL | U+0085 | Не дозволено | Не дозволено | (допускається) | Підтримується |
Керуючий код NUL (Null) не дозволений і не може бути представлений NCR або закодований прямо в мовах розмітки.
HTML, XHTML та XML 1.0 не підтримують діапазон C0, за винятком HT - Horizontal Tabulation (горизонтальна табуляція) U+0009, LF - Line Feed (розрив рядка) U+000A, та CR - Carriage Return (повернення на початок рядка) U+000D. Діапазон C1 підтримується, тобто ви можете кодувати безпосередньо керуючі коди або представляти їх як NCRs (Числові Посилання).
XML 1.1 обмежує діапазон C1, за винятком NEL U+0085 (Нової лінії EBCDIC), так само, як діапазон C0. Однак, XML 1.1 дозволяє представляти керуючі коди за допомогою NCRs (Числових Посилань).
У той час як ISO 8859 зарезервувала діапазон C1 для керуючих кодів, набори символів Microsoft (наприклад 1250-1258) поставили символи у цей діапазон. Іноді автори контенту помилково використовують code points (місця коду) символів Microsoft при створенні NCRs замість того, щоб використовувати значення Unicode. Через поширеність даної помилки, багато браузери відображають символи Microsoft у цьому діапазоні. Це некоректна поведінка і в подальшому вводить розробника в оману неправильним підтвердженням помилкового значення. В кінцевому підсумку проблему можна виявити, коли дані обробляються деякими програмами, або коли відповідаючий стандартам браузер не може відобразити призначений символ.
Розкажіть нам про те, що Ви думаєте.
Підписатися на RSS джерело.
Twitter (Новини головної сторінки)
Переклад Англійського контенту від 2003-09-06. Переклад останнього оновлення 2011-06-06 21:00 GMT
Для перегляду історії внесення змін до перекладу натисність qa-controls в блоге i18n.
Copyright © 2003-2011 W3C® (MIT, ERCIM, Keio, Beihang), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. Your interactions with this site are in accordance with our public and Member privacy statements.