Обробка кодування символів в HTML і CSS

Аудиторія: Автори HTML/XHTML і CSS контенту. Цей матеріал можна застосовувати при створенні документів в редакторі або за допомогою скриптів.

Цей посібник збирає і організовує вказівки на статті, які допоможуть вам зрозуміти, як поводитися з найважливішими аспектами розробки (X) HTML і CSS, що пов'язані із символами і кодуванням символів.

В двох словах

Цей розділ для людей, які просто хочуть дізнатися ключові рекомендації з посібника. Якщо ви чогось не розумієте, або не хочете більш докладно ознайомлюватися з іншою частиною посібника.

Якщо ви можете, то збережіть ваші сторінки, як UTF-8.

Завжди призначайте кодування вашого документу. Якщо можете, то використовуйте заголовок HTTP. Завжди використовуйте призначення для вмісту документа. Ця таблиця підкаже вам як це зробити, в залежності від формату, що ви розробляєте. Використовуйте назви кодувань із реєстру IANA.

Для зовнішніх таблиць стилів використовуйте правило @charset (але не CSS на вашій HTML сторінці) якщо ви маєте відмінний від ASCII контент, такий як назви шрифтів, ідентифікатори або імена класів і т.д.

Намагайтесь уникати використання byte-order mark (мітка порядку байтів) в UTF-8, і переконайтесь, що ваш HTML код збережений в формі C нормалізації Unicode (NFC).

Уникайте використання екранованих символів, за винятком невидимих або неоднозначних символів. І не використовуйте керуючі символи Unicode, якщо замість них можна використати розмітку.

Вказані статті описують останні ідеї специфікації HTML5. Однак важливо відзначити те, що HTML5 специфікації все ще не стабільні, так що ви повинні бути уважні при використанні цієї інформації.

Необхідна довідкова інформація

Якщо ви новачок у цій темі, але ви хочете вивчати різні частини посібника, то є певні основні поняття, які ви повинні зрозуміти. Якщо ви знайомі з цими поняттями, то ви можете переходити до наступного розділу.

Вибір і застосування кодування

Контент складається з послідовності символів. Символи представляють букви алфавіту, розділові знаки і т. д. Але контент зберігається в комп'ютері у вигляді послідовності байтів, які мають числові значення. Іноді більше, ніж один байт використовується для представлення одного символу. Як коди, що використовуються в шпигунстві, так і спосіб у який послідовність байтів перетворюється в символи залежить від того, який ключ використовувався для кодування тексту. У цьому контексті, той ключ називається кодуванням символів.

На вибір є багато кодувань символів. Ця частина посібника дає просту пораду: яке кодування використовувати для вашого контенту, і як його застосувати.

Вибір і застосування кодування символів включає в себе наступне:

Як призначити кодування символів

Ви повинні завжди вказувати кодування, що використовується для HTML або XML сторінки. Якщо ви цього не зробите, ви ризикуєте, що символи в контенті будуть неправильно інтерпретовані. Це не просто питання читабельності тексту людиною, більше - машини також мають розуміти ваші дані. Ви повинні також перевірити, чи ви не вказали різні кодування в різних місцях.

Призначення кодування символів в HTML забезпечить рекомендаціями тих, хто просто хоче пораду про те, що йому робити, і більш детальною інформацією тих, хто її потребує.

Призначення кодування символів в CSS надає інформацію для CSS.

  1. Рекомендації
  2. Детальніше:

 

Мітка порядку байтів (BOM)

Мітка порядку байтів, або BOM - те з чим ви зіштовхнетеся при використанні кодувань символів основаних на Unicode, таких як UTF-8 і UTF-16. У деяких випадках вам потрібно буде видалити BOM, в інших - переконатися, що вона є.

Мітка порядку байтів (BOM) в HTML включає в себе:

Форми нормалізації Unicode

Нормалізація - те, про що ви повинні знати, якщо ви розробляєте HTML сторінки в UTF-8 (або будь-якому іншому кодуванні Unicode) із таблицями стилів CSS, особливо якщо ви маєте справу з текстом в скрипті, який використовує наголоси або інші розділові знаки.

Нормалізація в HTML і CSS включає в себе:

Використання екранованих символів

Використовуючи тільки символи ASCII ви можете застосовувати екрановані символи для представлення будь-якого символу з набору символів Unicode в HTML, XML або CSS.

Використання екранованих символів в розмітці і в CSS надає наступну інформацію:

Символи або розмітка?

Нарешті, є ряд символів схожих на керуючі символи Unicode, деякі з яких виконують таку ж роль, як розмітка. Питання: які символи ви можете використовувати, а які вам слід уникати?

Символи або розмітка? включає в себе: