URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 4449
[ Назад ]

Исходное сообщение
"AJAX + charset"

Отправлено primus , 24-Окт-06 17:59 
Есть HTML документ в кодировке KOI8-R, он имеет META с content="text/html; charset=KOI8-R".
В браузере (IE  в Windows, Mozilla в Linux) текст отображается корректно.
НО один из элементов в результате выполнения кода с использованием AJAX обновляется,
с сервера в него добавляется порция текста в кодировке KOI8-R же, и видно его в ДРУГОЙ кодировке (похоже на ISO8859-1).
Вопрос: Как заставить браузер выводить весь текст в ОДНОЙ и ТОЙ ЖЕ кодировке?
Спасибо.

Содержание

Сообщения в этом обсуждении
"AJAX + charset"
Отправлено uldus , 24-Окт-06 22:27 
>с сервера в него добавляется порция текста в кодировке KOI8-R же, и
>видно его в ДРУГОЙ кодировке (похоже на ISO8859-1).
>Вопрос: Как заставить браузер выводить весь текст в ОДНОЙ и ТОЙ ЖЕ
>кодировке?

В момент вывода порции на запрос XMLHTTPRequest выдавать скриптом заголовок с "charset=koi8-r" и проверить чтобы отдавался оменно он, а не подменялся сервером. В HTML браузер в первую очередь на meta смотрит.


"AJAX + charset"
Отправлено primus , 24-Окт-06 23:02 
>
>В момент вывода порции на запрос XMLHTTPRequest выдавать скриптом заголовок с "charset=koi8-r"
Скрипт написан на php и в его начало я вставил header() с указанием кодировки.
При выполнении выполнении скрипта в консоли (php script_name.php) видно,
что описание кодировки выдается.
>и проверить чтобы отдавался оменно он, а не подменялся сервером. В
>HTML браузер в первую очередь на meta смотрит.
Как проверить? (поправить?)


"AJAX + charset"
Отправлено uldus , 24-Окт-06 23:09 
>Как проверить? (поправить?)

curl -I http://хост/путь/script_name.php
или в Firefox поставить LiveHTTPHeader


"AJAX + charset"
Отправлено primus , 26-Окт-06 20:23 
>или в Firefox поставить LiveHTTPHeader
Извините за назойливость, а если "обобщенный" браузер?



"AJAX + charset"
Отправлено uldus , 27-Окт-06 16:39 
>>или в Firefox поставить LiveHTTPHeader
>Извините за назойливость, а если "обобщенный" браузер?

LiveHTTPHeaders - это плагин для Firefox который показывает HTTP заголовки для отладки.


"AJAX + charset"
Отправлено gangrel , 27-Окт-06 17:38 
>Есть HTML документ в кодировке KOI8-R, он имеет META с content="text/html; charset=KOI8-R".
>
>В браузере (IE  в Windows, Mozilla в Linux) текст отображается корректно.
>
>НО один из элементов в результате выполнения кода с использованием AJAX обновляется,
>
>с сервера в него добавляется порция текста в кодировке KOI8-R же, и
>видно его в ДРУГОЙ кодировке (похоже на ISO8859-1).
>Вопрос: Как заставить браузер выводить весь текст в ОДНОЙ и ТОЙ ЖЕ
>кодировке?
>Спасибо.

пропишите средствами Apache кодировку для всего хоста.


"AJAX + charset"
Отправлено svazist , 29-Окт-06 19:27 
>Есть HTML документ в кодировке KOI8-R, он имеет META с content="text/html; charset=KOI8-R".
>
>В браузере (IE  в Windows, Mozilla в Linux) текст отображается корректно.
>
>НО один из элементов в результате выполнения кода с использованием AJAX обновляется,
>
>с сервера в него добавляется порция текста в кодировке KOI8-R же, и
>видно его в ДРУГОЙ кодировке (похоже на ISO8859-1).
>Вопрос: Как заставить браузер выводить весь текст в ОДНОЙ и ТОЙ ЖЕ
>кодировке?
>Спасибо.

Если мне память не изменяет, то объект который реализует асинхронные запросы в браузере корректно работает только с UTF-8.

Использование UTF гарантирует корректную работу со всеми браузерами

P.S. А HTTP заголовки нужно корректно отдавать, так же, воизбежание головной боли - заголовками запрещать кеширование ассинхронных запросов.
в IE они жёстко кешируются.


"AJAX + charset"
Отправлено vedemir , 18-Сен-09 19:11 
>>Вопрос: Как заставить браузер выводить весь текст в ОДНОЙ и ТОЙ ЖЕ
>>кодировке?
>>Спасибо.

header с указанием кодировки НЕЛЬЗЯ изменять после вывода в браузер хотя бы одного тега, до вывода - пожалуйста: создайте функцию, которая отконвертирует весь текст так как вам нужно до того, как в браузер пошли первые теги.

>Если мне память не изменяет, то объект который реализует асинхронные запросы в
>браузере корректно работает только с UTF-8.

А если мне не изменяет память, то корректности можно добиться и с другими кодировками используя: encodeURIComponent(otpravlenayaPeremennayaKrivoyKodirovkiNeUTF)