Опубликовано: 25.06.2010 Последняя правка: 10.12.2015
HTMLXHTML
IEChromeFireFoxOperaSafari

Атрибут 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" "http://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.01HTML 5XHTML 1.0XHTML 1.1
Поддержка:ДаДаДаДа

Поддержка браузерами

Браузер:Internet ExplorerGoogle ChromeMozilla FirefoxOperaSafari
Версия:6.0 и выше2.0 и выше2.0 и выше9.2 и выше3.1 и выше
Поддержка:НетДаДаДаДа

IE отправляет все данные в кодировке utf-8 невзирая на указания атрибута accept-charset.