Решение Проблем С Неработающей Кодировкой: Accept-Charset

Я столкнулся со следующей проблемой: многие программисты либо не знают о существовании Accept-charset, либо игнорируют этот атрибут. Придя в свою нынешнюю компанию, я начал разрабатывать сервис REST API, но время от времени меня сталкивали с ошибками «Ответ XML поврежден из-за.

».

Мне пришлось покопаться в графическом интерфейсе и обнаружить, что мой любимый тег отсутствует. Зачем нам еще один атрибут, спросите вы? Что такое Accept-charset, было описано лучше меня давным-давно в W3C эта ссылка ( http://www.w3.org/TR/html401/interact/forms.html#adef-accept-charset )



Давайте теперь представим ситуацию:

- У вас есть вебсайт - вы указали кодировку utf-8 в мета — у вас настроена серверная часть для работы с utf-8 (база, бэкенд и т.д.) Тестируешь: заходишь на сайт, отправляешь из формы — всё нормально.



Однако проблема в том, что многие люди забывают:

1. в большинстве случаев браузер автоматически определяет кодировку и ваш сайт корректно отправляет данные на серверную часть

2. есть люди, которые устанавливают свою кодировку вручную

3. есть люди, которым нравится играться с вашим сайтом

4. прочее: боты, ПО для тестирования и т.д.

Что произойдет в этом случае, если в теге FORM нет атрибута subject:

1. откройте свой сайт

2. измените кодировку в браузере, пусть будет ISO-8859-1

3. попробуйте ввести данные на русском языке или, например: немецком, используя умлауты; Если вы хотите пойти дальше, попробуйте специальный вариант. символы

4. опубликуйте свою форму

5.открываем свою запись в базе и смотрим в какой кодировке туда попали ваши символы и как их обработала серверная часть Отвечать : текст придет к вам в кодировке ISO-8859-1, потому что браузер следует стандартам и определенной последовательности определения кодировки, а это значит, что если строго указан ISO-8859-1, то браузер будет подчиняться и использовать ISO-8859. -1 для отправки данных из формы



Как с этим справиться?

Посмотрите на название темы: да, именно Accept-charset="utf-8" в теге FORM избавит вас от этой проблемной ситуации.

Этот атрибут даст браузеру необходимые «знания» о том, что данные из формы следует отправлять только в кодировке utf-8 и никакой другой.

Заключение : все гениальное просто, а в наше время миром правит информация.

P.S. YouTube до сих пор остается для меня загадкой, они намеренно не используют Accept-charset, вместо этого используют какой-то свой функционал, который делает то же самое (похоже на javascript) Теги: #web 2.0 #web 2.0 #web 2.0 #web #веб-разработка #разработка веб-сайтов

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2014-06-01 01:52:00
Баллов опыта: 684
Всего постов на сайте: 5
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.