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;, наприклад: «à» → «à» «α» → «α» «<» → «<» «>» → «>» « » → « » нерозривний пробіл) У той же час всі символи можуть бути закодовані в числовому позначенні з використанням десяткового (&#DD;) або шістнадцяткового (&#xHHHH;) код Unicode. «à» = «à» → «à» «α» = «α» → «α» Правильний браузер буде відображати символи, визначені вищезгаданим шляхом, незалежно від поточної кодування документа і, зокрема, навіть у разі, коли такі символи нею не можуть бути охоплені. Таким чином, можливий японський текст в HTML-документі, написаному в Windows-1251, і т. д. | |
|
Всего комментариев: 0 | |