Альтернатива overrideMimeType для IE

Это вопрос, на который никогда не было правильного ответа, я много раз искал в сети и не мог найти решение.

xhr.open("GET", fullurl, true);
if(xhr.overrideMimeType) xhr.overrideMimeType("text/html; charset=ISO-8859-1");
xhr.send(null);

xhr.onreadystatechange  = function(){ 
if(xhr.readyState  == 4){
if(xhr.status  == 200) 
alert(xhr.responseText);

Работает на Firefox, Chrome. Мой responseText вернет символ, подобный Réunion, который будет отображаться в виде странных символов.

Я пробовал много методов, таких как кодирование и декодирование, установка заголовка в файле ответов, который не работает. У меня нет идей. Пожалуйста, помогите кому-нибудь.


**SOLUTION**

В основном файле убедитесь, что вы установили тип контента и кодировку.

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

На вашей странице, загруженной AJAX, убедитесь, что это вверху.

header('Content-Type: text/html; charset=iso-8859-1'); 

Проблема решена, ваш счастливый человек. это больше не нужно.

if(xhr.overrideMimeType) xhr.overrideMimeType("text/html; charset=ISO-8859-1");

2 ответа

Решение

Вам не нужно ничего необычного, как overrideMimeType. Просто убедитесь, что кодировки вашей главной страницы и страницы, загруженной AJAX, верны (предпочтительно UTF-8 для обоих). Скорее всего, вы забыли метатег, объявляющий кодировку.

Я не могу изменить кодировку с метатегом и доступом к серверу. В IE я получаю доступ к responseBody, чтобы создать responseText с правильными символами. Вот мой ответ:

/questions/8454045/kak-ya-mogu-poluchit-dostup-k-xhr-responsebody-dlya-dvoichnyih-dannyih-iz-javascript-v-ie/8454063#8454063

Другие вопросы по тегам