Это вопрос, который никогда не имеет правильного ответа, я много раз искал сеть, и я не мог найти решение.
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. Мой ответText вернет символ, похожий на 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");
Вам не нужно ничего такого, как overrideMimeType. Просто убедитесь, что кодировки вашей основной и загруженной AJAX страницы верны (предпочтительнее UTF-8 для обоих). Скорее всего, вы забыли метатег, объявляющий кодировку.
Я не могу изменить кодировку с помощью метатега и получить доступ к серверу. В IE я обращаюсь к responseBody, чтобы создать responseText с правильными символами. Вот мой ответ: