Пятница, 29.11.2024, 01:46
Приветствую Вас, Гость
Главная » 2015 » Сентябрь » 9 » Кодування символів в HTML
20:37
Кодування символів в HTML
Мова гіпертекстової розмітки HTML використовується з 1991 року, але версія 4.0 (1997) була першою, де подання символів, відмінних від ASCII (тобто, англійської мови), достатньо стандартизована.

При відображенні HTML-сторінки браузерами останнім потрібно повідомити в якому кодуванні збережена сторінка. Для цього можна скористатися двома методами:

При передачі документа HTML HTTP (скажімо, у WWW) набір символів документа задається в заголовку HTTP, наприклад для тексту в російському варіанті кодування КОІ-8:
Content-Type: text/html; charset=koi8-r


Інформацію про кодування можна вставити в документ HTML, використовуючи тег meta в розділ <head> HTML-документа. Наприклад, у випадку кодування UTF-8 тег meta буде виглядати наступним чином:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

У стандарті мови HTML 5 мета тег інформує браузер про кодування сторінки записується відмінно від правил, прийнятих у попередніх стандартах HTML. Так приклад наведений вище в HTML 5 буде виглядати наступним чином:
<meta charset="utf-8" />

Такий спосіб непогано працює для файлів, але при видачі документа HTTP його успішність залежатиме від дій HTTP-сервера, забажає він зазначити цю інформацію в заголовку. Згідно HTTP/1.1, відсутність вказівки charset в заголовку прирівнюється до використання набору символів ISO 8859-1.

Тобто, пріоритетним фактором для браузера з питання «в якому кодуванні відображати документ» може бути переданий сервером заголовок. В цьому випадку браузер зобов'язаний ігнорувати відповідні директиви в т.

1. При використанні сервера Apache можна використовувати файл .htaccess. У ньому потрібно вказати директиви сервера щодо кодувань за замовчуванням: AddDefaultCharset UTF-8 У наведеному прикладі кодуванням за замовчуванням в заголовках сервера буде призначена UTF-8.

У разі кодування windows-1251: AddDefaultCharset windows-1251

Дані директиви файлу .htaccess найбільш часто застосовуються. Але в кожному окремо взятому випадку можуть і не спрацювати. Все залежить від налаштувань сервера.

Є менш популярні директиви, дія яких спрямована на відключення сервера заголовків. При їх відключенні браузер буде вибирати кодування в залежності від вказівок в тезі МЕТА.

charsetdisable on

AddDefaultCharset Off

Найчастіше, проблеми відображення кодувань пов'язані з тим, що застаріле ПЗ для Web (наприклад, сайт, CMS і т. д.) використовує національну кодування в той час як сервер налаштований для роботи з UTF-8. У цьому випадку, примусово вказується мова, кодування необхідна (наприклад, cp1251) для web-сервера, і (як правило) інтерпретатора PHP.

DefaultLanguage ru

AddDefaultCharset windows-1251

php_value default_charset "cp1251"

2. Директива php-кодом: На початку php-файлу можна вказати php-код, який передасть інструкції браузеру за вибором кодування:

В XHTML можна також вказувати кодування в преамбулі XML, наприклад:


Символи, що мають спеціальні назви (див. Мнемоніки в HTML), можуть бути закодовані у вигляді &entity;, наприклад:
«&agrave;» → «à»
«&alpha;» → «α»
«&lt;» → «<»
«&gt;» → «>»
«&nbsp;» → « » нерозривний пробіл)


У той же час всі символи можуть бути закодовані в числовому позначенні з використанням десяткового (&#DD;) або шістнадцяткового (&#xHHHH;) код Unicode.
«&#224;» = «&#xE0;» → «à»
«&#945;» = «&#x3B1;» → «α»

Правильний браузер буде відображати символи, визначені вищезгаданим шляхом, незалежно від поточної кодування документа і, зокрема, навіть у разі, коли такі символи нею не можуть бути охоплені. Таким чином, можливий японський текст в HTML-документі, написаному в Windows-1251, і т. д.
Просмотров: 478 | Добавил: Admin | Теги: Кодування символів в HTML | Рейтинг: 0.0/0
Всего комментариев: 0
avatar