Атрибут accept-charset
Атрибут accept-charset, тега <FORM>, задает список кодировок данных, вводимых в текстовые поля формы. По умолчанию данные формы отправляются браузером в той же кодировке, что и страница с которой они отправлялись. А сервер не всегда может принять их в любой кодировке. В таких случаях и необходим этот атрибут.
Дело в том, что компьютеры не воспринимают текстовые символы в привычном для нас виде. Для них каждый символ — это число. А кодировки как раз и представляют собой символьные наборы данных, позволяющие определить, какому символу, какое число соответствует. Причем, существует их великое множество, например: UTF-8, UTF-16, Windows-1251, ISO-8859-1 и т.д. Они отличаются не только методом кодирования, но и набором поддерживаемых символов, допустим, некоторые не понимают кириллицу. Но при этом все они содержат часть набора (от 0-128) символов ASCII-кодировки, которые представляют собой десятичные цифры, латинский алфавит, знаки препинания и управляющие символы (BEL, BS, TAB и т.д.).
Если программа не может определить кодировку, она не в состоянии правильно обработать документ и, в случае необходимости, его отобразить. Подобное вы могли видеть на некоторых сайтах, где браузер вместо того, чтобы правильно отобразить страницу, выводит непонятные символы, называемые в народе «кракозябрами».
Когда используется атрибут accept-charset, браузер, перед отправкой, перекодирует текст. Но только в том случае, если он сам может распознать указанную кодировку. Поэтому, для надежности, можно указать несколько кодировок через запятую, поддерживающих необходимый вам символьный набор данных. Кодировку HTML-страницы можно установит при помощи тега <META>.
Значения
Значением атрибута accept-charset является указание одной или нескольких (через запятую) кодировок данных. К регистру эти названия нечувствительны.
Значение по умолчанию: Зарезервированная строка "UNKNOWN", которая соответствует кодировке страницы, с которой отправлялась форма.
Синтаксис
<form action="URL" accept-charset="значение">...</form>
Обязательный атрибут: нет.
Пример HTML: применение атрибута accept-charset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>seodon.ru - Тег FORM, атрибут accept-charset</title>
</head>
<body>
<form action="files/questions.php" accept-charset="Windows-1251">
<p><input type="text" name="name" size="30" value="Ваше имя"></p>
<p><input type="submit" name="ok" value="Отправить"></p>
</form>
</body>
</html>
Поддержка версиями HTML
Версия: | HTML 4.01 | HTML 5 | XHTML 1.0 | XHTML 1.1 |
Поддержка: | Да | Да | Да | Да |
Поддержка браузерами
Браузер: | Internet Explorer | Google Chrome | Mozilla Firefox | Opera | Safari |
Версия: | 6.0 и выше | 2.0 и выше | 2.0 и выше | 9.2 и выше | 3.1 и выше |
Поддержка: | Нет | Да | Да | Да | Да |
IE отправляет все данные в кодировке utf-8 невзирая на указания атрибута accept-charset.