Налаштування параметра HTTP charset
Intended audience: розробники скриптів (PHP, JSP, і т.д.), веб-майстри, менеджери веб-проектів, і кожен, хто хоче зрозуміти, як встановити або надіслати HTTP charset інформацію.
Параметр charset
Документи, передані з HTTP, які мають такі типи тексту: text/html, text/plain, і т.д., можуть надіслати charset параметр до заголовка HTTP, щоб вказати кодування символів документа.
Цедуже важливо завжди явно відзначати Веб документи. У HTTP 1.1 говориться, що за умовчанням charset має бути ISO-8859-1. Але є дуже багато невідзначених документів в інших кодуваннях, тому коли немає явного параметра charset браузери використовують кодування, яке віддає перевагу читачеві.
Зазвичай рядок у заголовку HTTP виглядає так:
Content-Type: text/html; charset=utf-8
Теоретично, будь-яке кодування символів, яке було зареєстроване IANA може використовуватися, але немає браузера, який всіх їх розуміє. Чим ширше буде використовуватися кодування символів, тим вища ймовірність того, що браузер його розумітиме. Таке кодування Unicode, як UTF-8, є хорошим вибором з низки причин.
Встановлення сервера
Як зробити так, щоб сервер надсилав відповідну charset інформацію, залежить від сервера. Щоб мати можливість змінювати налаштування сервера, вам знадобляться відповідні адміністративні права.
Apache. Це можна зробити за допомогою AddCharset (Apache 1.3.10 та пізніші) або директив AddType для каталогів або окремих ресурсів (файлів). За допомогою AddDefaultCharset (Apache 1.3.12 та пізніші) можна встановити параметр charset за замовчуванням для всього сервера. Додаткові відомості див. у статті Налаштування 'charset' інформації в .htaccess.
Jigsaw. Використовуйте indexer в JigAdmin , щоб зв'язати розширення з charset, або встановити charset безпосередньо на ресурсі.
IIS 5 і 6. В Internet Services Manager, клацніть правою кнопкою миші "Default Web Site" (або сайт, який потрібно налаштувати) і перейдіть до "Properties" => "HTTP Headers" => "File Types." => "New Type. ". Поставте розширення, яке потрібно відобразити, окремо для кожного розширення; ймовірно користувачі IIS захочуть відобразити .htm, .html. Тоді додайте до Content type "text/html;charset=utf-8" (без лапок; замініть бажаний вами charset на iso-8859-1; ніде не залишайте прогалини, оскільки IIS ігнорує весь текст після пропусків). Для IIS 4, можливо, доведеться використовувати "HTTP Headers" => "Creating a Custom HTTP Header" якщо вище вказана схема не працює.
Скриптовий заголовок
Відповідний заголовок можна також встановити на сервер side scripting languages (скриптові мови сервера). Наприклад:
Perl. Виберіть правильний заголовок перед будь-якою частиною поточної сторінки. Після останнього заголовка, використовуйте подвійний linebreak (розрив рядка), наприклад: print "Content-Type: text/html; charset=utf-8\n\n";
Python. Використовуйте те саме рішення, що й для Perl (крім того, що в кінці вам не потрібно використовувати крапку з комою).
PHP. Перед створенням будь-якого контенту використовуйте функцію header(), наприклад: header('Content-type: text/html; charset=utf-8');