Html form windows 1251

Кодировка windows 1251 в сайтостроении

Кодировка windows 1251 была создана в начале 90 годов для русификации программных продуктов, выпускаемых корпорацией Microsoft :

  • 0xFF (25510) – это код, который зарезервирован для символа «я». В программах, которые не поддерживают чистый 8-ой бит, часто возникают непредсказуемые проблемы;
  • Нет псевдографики, которая присутствует в KOI8 , CP866 .

Ниже приведены символы из Code Page 1251 или сокращенно СР1251 ( числа под символами являются кодом в шестнадцатеричной системе такого же символа в Юникоде ):

Кодировка windows 1251 в html

Нередко у web-разработчиков и блогеров, обладающих различной квалификацией возникает проблема с кодировкой страниц: вместо подготовленного текста появляются неизвестные, нечитаемые символы. Чтобы разобраться с данной проблемой, необходимо понимать суть термина « кодировка страницы ».

Текст в памяти компьютера хранится в виде определенного количества байт, а не в том виде, в котором он отображается в текстовом редакторе. Каждый байт является кодом, который соответствует одному символу. Для того чтобы текст на странице отображался как следует, нужно сообщить браузеру, какую таблицу кодов для расшифровки и отображения он должен использовать.

Таблица кодировок не является универсальной, то есть, для расшифровки текста необходимо использовать ту, которая соответствует кодировке символов:

— между тегом и закрывающим его нужно прописать — исходя из этой строки, браузер будет использовать символы русского алфавита для отображения текста на странице.

Кодировка windows 1251 в PHP

Ни для кого не является тайной, что генерация страниц проходит путем выборки и использования какой-то части информации, которая хранится в базе данных. При написании сайта на PHP , чаще всего это mysql :

Читайте также:  Архитектурное приложение для windows

Для согласования расшифровки необходимо выполнить функцию mysql_query(«SET NAMES cp1251») – это означает, что преобразование из машинного кода будет осуществляться согласно таблице cp1251 .

Кодировка windows 1251 в htaccess

При создании сайта, предварительно настроив кодировки в шаблонах и базах данных, все равно может всплыть проблема некорректного отображения информации в браузере.

Для того чтобы для веб-ресурса была задана кодировка виндовс-1251 , необходимо найти ( или создать ) файл .htaccess . Это файл, который хранит в себе дополнительные настройки и описания конфигураций web-сервера.

В нем для установки кодировки следует прописать следующие строки:

  • DefaultLanguage ru;
  • AddDefaultCharset windows-1251;
  • php_value default_charset «cp1251».

Таким образом, для корректного отображения текста должны совпадать его кодировка и таблица кодов, с помощью которой браузер будет расшифровывать символы. Для текстов, написанных на славянских языках, необходима win 1251 кодировка. Важно помнить, что элементы страниц и баз данных должны быть описаны с помощью одной таблицы кодов.

Кодировка данных, отправляемых формой

Данные, отправляемые формой имеют ту же кодировку, что и страница, на которой находится форма. Но как же быть, если страница например в кодировке UTF-8, а надо чтобы данные отправлялись в кодировке windows-1251. Конечно есть такой вариант, как сменить кодировку у страницы. Но это не всегда возможно, сайт — CMS уже настроена на работу с конкретной кодировкой.

Поменять кодировку отправляемых формой данных можно прописав у тега form атрибут accept-charset=»нужная кодировка». Например:

В этом случае в независимости от кодировки страницы данные формы будут в кодировке windows-1251.

UPD

Но! Как выяснилось этот атрибут не поддерживается горячо «любимом» браузере Internet Explorer до 7 версии включительно.
В последующих реализовано, но имеются ошибки. Internet Explorer содержит ошибку при использовании кодировки ISO-8859-1, в этом случае браузер отправляет данные в кодировке Windows-1252.

Читайте также:  Office 2007 под windows

К сожалению всё предыдущее решение ломается, так как этот браузер на данный момент игнорировать нельзя. Но думаю в скором будущем — через год, можно будет забыть про IE 6, так как его процент стремительно падает. Так же можно будет забыть IE7, так как к моей радости благодаря выпуску IE 8 он не обрёл такую большую популярность. Да и политика от мелкомягких к счастью сменилась. Выпускают более новые браузеры и от старых стараются отказываться.

Как бы то ни было, проблему с кодировкой кроссбраузерно можно решить следующим методом.

Подключаем в нужном месте на странице с кодировкой UTF-8 файл с формой посредством iframe. Подключаемый файл должен иметь нужную кодировку, например windows-1251. Тогда форма будет отправлять данные в нужной — windows-1251 кодировке.

Для красоты у iframe ставим высоту, ширину, чтобы форма была видна. Убираем скроллинг в любой ситуации. Убираем рамки. Это всё для того, чтобы не было видно, что форма находится в iframe.

Неверная кодировка из формы обратной связи

Опции темы

Установлен шаблон на WordPress. Прописана форма обратной связи, которая отправляет сообщения на указанный в настройках темы адрес. Проблема в том, что адрес (@mail.ru) и веб-интерфейс этого почтовика не понимает кодировки сообщения. Вот так не понимает:

Если указать почту на гмейл, все корректно отображается. Стоить забор почты с мейлу на гмейл, и собранное письмо с мейл.ру на гмейле тоже отображается. Проблема только в мейлру, которому что-то непонятно..
От себя добавлю, что пробовал дописывать $mailheaders = «Content-type:text/plain;charset=windows-1251rn»;, но не помогает.
Полный код файла:

Полный

Код, который, по моему мнению, нужно подправить (дописать чо-нить :))

$from_name = $_POST [ ‘your_name’ ];
$from_email = $_POST [ ’email’ ];

Читайте также:  Kyocera fs 1028mfp драйвер linux

$message = ‘Имя: ‘ . $from_name . PHP_EOL ;
$message .= ‘Email: ‘ . $from_email . PHP_EOL . PHP_EOL ;
$message .= ‘Сообщение: ‘ . PHP_EOL . $_POST [ ‘message’ ];

echo THANKYOU_MESSAGE ;
echo ‘

exit;
>
else
<
echo ERROR_MESSAGE ;

Прошу помощи

Последний раз редактировалось ADvi; 01.07.2012 в 19:59 .

  • 0

ADvi

ADvi, у Вас с ПХП как? Читайте про фунцию convert_cyr_string

  • 1

pyramida

Спасибо сказали:

mail(DEST_EMAIL, SUBJECT_EMAIL, $message);

mail(DEST_EMAIL, SUBJECT_EMAIL, $message, «Content-Type: text/plain; windows-1251» );

Оцените статью