2010-07-01 6 views
1

Для нашего веб-приложения у нас есть несколько HTML-страниц, содержащих текстовые области. Все наши страницы представлены с кодировкой ISO-8859-1. Когда страница открывается через IE6 на машине Windows, а специальные символы, такие как «умная цитата», копируются в текстовую область, некоторые из наших страниц отправляют страницу с использованием кодировки символов Windows 1252. На остальных страницах появляются сообщения с использованием кодировки символов UTF-8. Я отслеживал представить кодировку, используя следующую скрытое поле:Представленная кодировка символов - _charset_ скрытое поле

<input type="hidden" name="_charset_" /> 

На Рабочем 1252 представить страницы кодирования символов, мы получаем значение «Windows-1252».

На страницах кодировки символов UTF-8 мы получаем пустое значение.

На бэкэнд используется ISO-8859-1. Хотя в идеале нам нужна кодировка символов отправки, я не вижу возможности форсировать это поведение в IE 6. Учитывая выбор между Windows 1252 и UTF-8, я предпочел бы, чтобы контент был представлен в Windows 1252, так что это более вероятно для правильной визуализации, когда страница повторно отображается в ISO-8859-1.

Я просмотрел наши страницы в глубине, и ничто не выпрыгивает на меня как причина, по которой некоторые страницы отправляются в кодировке одного символа.

1) Когда IE 6 возвращает charset пустого, действительно ли это соответствует UTF-8? IE 6 всегда возвращает кодировку пустого, когда кодировка символов отправки является UTF-8 или только когда она не может правильно определить, какую кодировку символов использовать?

2) Какие возможные различия могут возникнуть на страницах, которые приведут к тому, что IE 6 подберет Windows 1252 на некоторых страницах и UTF-8 на других? Я просмотрел страницу для символов UTF-8 и для любых атрибутов accept-charset и не смог найти их.

Дополнительная информация: Я нашел информацию о charset скрытый ввод по следующей ссылке.

http://web.archive.org/web/20060427015200/ppewww.ph.gla.ac.uk/~flavell/charset/form-i18n.html

+0

У вас есть атрибут «charset = ...» в ваших HTML-формах? Если нет, попробуйте добавить его. –

+0

Я попробовал предоставить «accept-charset» в форме, используя «windows-1252» и «iso-8859-1». По-видимому, это не повлияло на поведение. Возможно, это результат «багги» поддержки этого атрибута IE (http://reference.sitepoint.com/html/form/accept-charset). – user381221

ответ

0

MSDN утверждает, что IE принимает только "UTF-8" в качестве значения для этого атрибута.

+1

Давайте будем здесь: поле формы \ _charset \ _ заполняется браузером клиента при отправке формы на сервер. Это не то, что указывает клиент. – EricLaw