Прискорююча кнопка n назначена для пропусків при навігації по сторінкам. Пропуск для переходу на початок контента.
Даний документ є перекладом. У випадку будь-яких невідповідностей і помилок остання версія документу англійською мовою повинна розглядатися як офіційна. Першопочаткове авторське право належить W3C, як це вказано нижче.
Перекладач: Alexandr Shlapak (Александр Шлапак)
Аудиторія: шифрувальники XHTML/HTML (використовуючи редактори або скрипти), розробники скриптів (PHP, JSP, і т.д.), і ті хто потребує керівництво в тому, як і коли використовувати альтернативи до сучасних символів в документі.
Як я можу використовувати екрановані символи в розмітці і CSS, і коли я повинен або не повинен їх використовувати?
Ви можете використовувати екрановані символи для представлення будь-якого символу Unicode в XML або (X)HTML використовуючи тільки ASCII символи.
NCR (числові посилання) та посилання на комбінацію символів є різновидами екранованих символів, які використовуються в розмітці. Наприклад, нижче наведені різні способи представлення символа U+00A0 NO-BREAK SPACE.
(Символ NO-BREAK SPACE виглядає як простір, але і запобігає обтіканню рядків з обох сторін між символами. У Французькій він часто використовується із знаками пунктуації, такими як двокрапки й знаки оклику, які передують простору, але не повинні з'являтися на початку рядка під час обтікання текстом)
 <p>Vive la France !</p> <p>Vive la France !</p> Á представляє
велику літеру Á, в той час як á представляє маленьку á.
<p>Vive la France !</p>Один момент, варто особливо відзначити, що значення числових посилань (таких, як € або € для знака євро €) інтерпретуються як символи Unicode – незалежно від того, яке кодування ви використовуєте для вашого документу. Це поширена помилка людей, що працюють із контентом закодованим у Windows code page 1252, наприклад, спробувати представити знак євро використовуючи €. Це відбувається тому, що євро з'явиться на 80 позиції (в шістнадцятковій системі) у Windows 1252 code page. Використовуючи € у HTML фактично ви повинні створити контролюючий символ, так як екранований символ буде поширений як символ на 80 позиції у репертуарі Unicode. (Насправді, браузери, як правило, мовчки виправляють цю помилку. Дивіться тестові сторінки.)
CSS відображає екрановані символи по-іншому. Відображення символу починаються зі зворотного слешу слідом іде шістнадцяткове число, яке представляє місце коду Unicode символа.
Якщо наступний символ є таким, що не перебуває в діапазоні A–F, a–f або 0–9, це все, що вам потрібно. Наступний приклад представляє слово émotion.
.\E9motion { ... }Якщо, з іншого боку, наступний символ, є таким, який може бути використаний в шістнадцяткових числах, то не буде ясно, де кінець номера. У цьому випадку є два варіанти. Перший полягає у використанні простору після екранованого символу. Цей простір є частиною синтаксису екранованого символу, і не залишається після його обробки. У наступному прикладі показано, як можна представляти слово édition.
.\E9 dition { ... }Крім того, ви можете використовувати 6-значне шістнадцяткове число, з простором або без нього. Ось альтернативний спосіб написання édition.
.\0000E9dition { ... }Тому що будь-які прогалин наступні шістнадцяткові числа поглинають як частину екранованого символу, якщо ви дійсно хочете, щоб простір з'явився після екранованого символу вам необхідно додати два простори (після шістнадцяткового числа будь-якої довжини).
Зворотній слеш також може бути використаний в CSS до синтаксису символа, щоб запобігти тому, щоб він не читався, як частина коду. Специфікація CSS 2.1.
Майже завжди краще використовувати кодування, що дозволяє відображати символи в їх нормальній формі, а не за допомогою посилань на комбінацію символів або NCR.
Використання екранованих символів може спричинити важкість у читанні і підтримці вихідного коду, а також може значно збільшити розмір файлу.
Багато англомовних розробників очікують того, що інші мови лише час від часу використовуватимуть non-ASCII символи, але це неправильно.
Візьмемо для прикладу наступний уривок Чеською мовою.
Jako efektivnější se nám jeví pořádání tzv. Road Show prostřednictvím našich autorizovaných dealerů v Čechách a na Moravě, které proběhnou v průběhu září a října.
Якщо б ви потребували NCR для всіх non-ASCII символів, уривок став би нечитабельним, важким для підтримування і набагато довшим. Звичайно, набагато гірше буде для мови, яка взагалі не використовувала латинські букви.
Jako efektivnĕjší se nám jeví pořádání tzv. Road Show prostřednictvím našich autorizovaných dealerů v Čechách a na Moravě, které proběhnou v průběhu září a října.
Як ми говорили раніше, використовуйте для звичайного тексту звичайні символи, а не екрановані.
Використання в XHTML. Використання посилань на комбінацію символів в документі який розпізнається як XML може стати проблематичним, якщо комбінації для вашого документу визначаються зовні та інструменти, які обробляють XML не читають зовнішніх файлів. У таких випадках посилання на комбінації не будуть замінені символами. З цієї причини, якщо вам потрібно використовувати екрановані символи, можливо буде безпечніше використовувати числові посилання, або визначити комбінації символів, які вам необхідні всередині документа.
Якщо ви використовуєте Визначені HTML посилання на комбінації символів (такі як á) для відображення символів у XHTML, ви повинні подбати, щоб весь час ваш контент оброблявся з використанням аналізаторів XML або інших інструментів.
Синтаксис символів. Є три символи, які завжди повинні з'являтися в контенті як екрановані символи, так що вони не взаємодіють з синтаксисом розмітки. Це є частиною мови для всіх документів основаних на XML і для HTML.
< (<)
> (>)
& (&)
Ви також можете представляти подвійні лапки (") як " та одиночні лапки (') як ' – зокрема, в атрибуті тексту коли вам необхідно використовувати той самий тип лапок, як ті, які оточують значення атрибута. Однак слід зазначити, що, хоча вони є частиною мови XML , ' та не визначені в HTML 4.01 і деякі браузери не підтримують ' в HTML. З цієї причини специфікація XHTML рекомендує замість них використовувати ' якщо текст може бути переданий HTML браузеру.
Кодування прогалин. Екрановані символи можуть бути корисними для представлення символів, що не підтримується кодуванням, яке ви обрали для документу, наприклад, для відображення Китайських символів в ISO Latin 1 документі. Однак, по-перше, ви повинні запитати себе, чому ви не змінили кодування документа, на те, що охоплює всі символи, які вам потрібні (звичайно, таке як UTF-8).
Проблеми подачі. Якщо ваш інструмент для редагування не дозволяє вам легко ввести необхідні символи, то ви також можете використовувати екрановані символи. Відзначимо, що це не довгострокове рішення, якщо вам потрібно ввести багато таких символів – це забирає більше часу і робить обслуговування більш важким. В ідеалі ви повинні вибрати інструмент для редагування, що дозволило ввести ці символи як звичайні символи. Альтернативно, якщо вам потрібний тільки випадковий символ, використовуйте інструмент для відображення символів або character picker.
Невидимі або неоднозначні символи. Особливо важлива роль для екранованих символів - відображати невидимі або неоднозначні в представленні символи.
Прикладом може бути символ Unicode 200F: RIGHT-TO-LEFT MARK. Цей символ може бути використаний для уточнення спрямованості в двонаправленому тексті (наприклад, при використанні таких скриптів, як Арабський або Іврит). Він не має графічної форми, тому важко побачити, де ці символи в тексті, і якщо вони загублені або забуті вони можуть створювати несподівані результати протягом наступного редагування. Використання ‏ (або його NCR еквіваленту ‏) замість нього дозволяє дуже легко виявити ці символи.
Приклад неоднозначного символу 00A0: NO-BREAK SPACE. Цей тип простору запобігає розриву рядка, але він виглядає так само, як і будь-який інший простір при використанні в якості символу. Використання (або  ) дозволяє ясно побачити, де в тексті з'являються такі простори .
Краще всього вибрати правильне кодування так, щоб ви могли просто використовувати символи в CSS призначеннях. Даний розділ посилається на дуже рідкісні обставини, коли ви, можливо, вирішите використовувати екрановані символи.
Це, як правило, хороша ідея помістити інформацію про стиль у зовнішній таблиці стилів або елементі style в XHTML head або HTML файлі. Іноді, або, можливо, на тимчасовій основі, ви можете використовувати атрибут style замість особливого елемента. Ще рідше ви захочете відображати один або кілька символів у атрибуті style використовуючи екрановані символи.
Атрибут style в XHTML або HTML може відображати символи використовуючи NCR, комбінації символів або екрановані символи CSS. З іншого боку, елемент style в HTML не може містити ні NCR ні комбінації символів, і те ж відноситься до зовнішньої таблиці стилів.
Тому що є тенденція до переміщення стилів призначених в атрибутах до елементу style або зовнішньої таблиці стилів (наприклад, це може бути зроблено автоматично, використовуючи додаток або скрипт), безпечніше використовувати тільки екрановані символи CSS.
Наприклад, краще використовувати
<span style="font-family: L\FC beck">...</span>
ніж
<span style="font-family: Lübeck">...</span>
Перехід на UTF-8 означає, повторне збереження вашого файлу. Використання такого кодування, як UTF-8 означає, що ви можете уникнути необхідності використання більшості екранованих символів і просто працювати з символами. Однак, щоб змінити кодування документа, не досить просто змінити кодування призначення у верхній частині сторінки або на сервері. Вам необхідно повторно зберегти ваш документ у цьому кодуванні. Для отримання довідки про те, як це зробити за допомогою вашого додатку читайте Налаштування кодування у додатках веб розробки.
Шістнадцяткова в порівнянні з десятковою. Як правило, коли стандарт Unicode посилається на символи або їх перераховує він використовує шістнадцяткові значення. Наприклад, місце коду для літери á може приписуватися як U+00E1. Враховуючи поширеність цієї конвенції, часто буває корисно, хоча і не потрібно, використовувати шістнадцяткові числові значення у екранованих символах, а не десяткові значення. Вам не потрібно використовувати провідні нулі у екранованих символах, тобто á може бути представлена як á.
Додаткові символи. Додаткові символи - ті символи Unicode, які мають місця коду вище, ніж символів у Basic Multilingual Plane (BMP) (Базова багатомовна площина). В UTF-16 додатковий символ кодується за допомогою двох 16-bit сурогатних місць коду із BMP. Через це, деякі люди думають, що додаткові символи повинні бути представлені з використанням двох екранованих символів, але це невірно - ви повинні використовувати одне, значення місця коду для того символу. Наприклад, використовуйте 𣎴, а не ��.
Одиночні амперсанди. Хоча користувацькі додатки HTML, як правило, закривають очі, але ви ніколи не повинні мати одинарний амперсанд (&) у вашому документі. Ви повинні звернути особливу увагу на URIs які включають параметри. Наприклад, документ повинен містити http://example.org/my-script.php?class=guest&name=user, а не http://example.org/my-script.php?class=guest&name=user.
Розкажіть нам про те, що Ви думаєте.
Підписатися на RSS джерело.
Twitter (Новини головної сторінки)
Переклад Англійського контенту від 2010-08-12. Переклад останнього оновлення 2011-05-02 11:00 GMT
Для перегляду історії внесення змін до перекладу натисність qa-escapes в блоге i18n.
Copyright © 2005-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.