Альтернатива 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 с правильными символами. Вот мой ответ: