Я хочу стандартизировать UTF8 на нашем веб-сайте. Все наши базы данных и интернет-материалы находятся в UTF8. Все наши веб-серверы отправляют HTTP-заголовок charset=utf-8
. Однако я обнаружил, что, изменив кодировку в моем Firefox (View -> Character Encoding) на что-то еще, я могу ввести символ Latin-9 в форму, и PHP просто рассматривает их как искаженный UTF8.Могу ли я заставить веб-браузеры отправлять текст формы как UTF8?
Сколько мне нужно беспокоиться об этом? Возможно ли, чтобы веб-браузер пользователя переопределил заголовок кодировки UTF8 и отправил не-UTF8?
Обновление: Несколько человек предложили accept-charset
на отдельных бланках. Однако я бы предпочел не менять каждую веб-форму. Предполагая, что я могу контролировать заголовок типа HTTP-контента, и он настроен на UTF8, мне есть о чем беспокоиться?
«Все наши базы данных и интернет-материалы» - все ваши интернет-материалы принадлежат нам. –
В соответствии с принятым ответом на [этот вопрос] (http://stackoverflow.com/questions/3719974/is-there-any-benefit-to-adding-accept-charset-utf-8-to-html-forms- if-the-page), 'accept-charset' решит определенную проблему, которую вы обнаружили: ie, если пользователь говорит своему браузеру интерпретировать страницу как не-UTF-8,' accept-charset' должен заставить браузер отправить несмотря на это, содержимое формы, как UTF-8.Независимо от того, стоит ли защищать эту конкретную ситуацию, стоит добавить атрибут ко всем вашим формам, ну, это ваш приговор. –
убедитесь, что ваша страница действительно utf-8; в отладчике браузера, найдите отправленный заголовок Content-Type. Также, в консоли JS, оцените document.charset; должен возвращать некоторую орфографию utf8. «windows-1252» может означать, что браузер не распознает отправленную кодировку. – OsamaBinLogin