Я могу вынудить веб-браузеры отправить текст формы как UTF8?

«Гуглить» - это хорошо!

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

Слишком часто я слышу гугл-ответы на проблемы, являющиеся результатом критики, и это действительно бессмысленно. Прежде всего, следует признать, что всем нужны материалы для ссылки. Вы не знаете всего, и вам нужно искать вещи. В заключение, действительно ли имеет значение, где вы получили информацию? Имеет ли значение, если вы посмотрели это в книге, посмотрели в Google или услышали от говорящей лягушки, которую вы галлюцинировали? Нет. Правильный ответ - это правильный ответ.

Важно то, что вы понимаете материал, используете его в качестве средства для достижения успешного программного решения, и клиент / ваш работодатель доволен результатами.

(хотя, если вы получаете ответы от галлюцинаторных говорящих лягушек, вам, вероятно, все равно придется получить некоторую помощь)

15
задан Paul D. Waite 13 February 2013 в 15:48
поделиться

3 ответа

Попробуйте добавить атрибут accept-charset в элементы формы.

3
ответ дан 1 December 2019 в 03:43
поделиться

Поместите элемент accept-charset = "UTF-8" в элемент формы, который приведет к тому, что сообщение формы будет иметь формат UTF-8, несмотря на кодировку содержимого страницы.

2
ответ дан 1 December 2019 в 03:43
поделиться

Возможно ли, чтобы веб-браузер пользователя браузера переопределить кодировку utf8 заголовка и отправлять не UTF8?

Конечно. Вы не контролируете клиента, а клиент может делать все, что захочет, в том числе позволять пользователям отменять обычные кодировки и отправлять на ваш сервер мусор (или то, что выдается за мусор).

Тем не менее, похоже, что вы предприняли большинство важных шагов. Ваш HTML-документ закодирован в UTF-8 и явно помечен как таковой, что означает, что браузеры по умолчанию будут отправлять формы в этой кодировке. (Обратите внимание, что спецификация HTML не требует этого. Явное указание accept-charset в форме - единственная соответствующая спецификации гарантия.) Я подозреваю, что это будет работать, как ожидается, во всех современных браузерах, и вы можете легко это проверить.

На сервере ваша задача - всегда проверять вводимые данные в той степени, в которой это важно для вашего сервиса. Хотя подавляющее большинство ваших пользователей будут доброжелательны и будут использовать современные стандартные браузеры, протокол HTTP открыт, и на свободе находятся как сумасбродные пользователи, так и злонамеренные хакеры, которые могут подбрасывать вам любые данные. Убедитесь, что вы не делаете предположений о кодировках данных, когда речь идет о безопасности или аутентифицированных данных, и проверяйте эти данные, прежде чем засовывать их в базы данных.

11
ответ дан 1 December 2019 в 03:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: