最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

php - overrideMimeType alternative for IE - Stack Overflow

programmeradmin1浏览0评论

This is a question that never has a proper answer, i have search the net many times and i couldnt find a solution.

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);

It works for firefox, chrome. My responseText will return char like Réunion, which will appear as weird symbols.

I tried many methods like encoding and decoding, setting header in response file which does not work. i'm out of ideas. Please help somebody.


**SOLUTION**

In your main file, make sure you set your content type and charset.

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

In your AJAX-loaded page, make sure you have this at the top.

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

Problem solved, your a happy man. this is no longer needed.

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

This is a question that never has a proper answer, i have search the net many times and i couldnt find a solution.

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);

It works for firefox, chrome. My responseText will return char like Réunion, which will appear as weird symbols.

I tried many methods like encoding and decoding, setting header in response file which does not work. i'm out of ideas. Please help somebody.


**SOLUTION**

In your main file, make sure you set your content type and charset.

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

In your AJAX-loaded page, make sure you have this at the top.

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

Problem solved, your a happy man. this is no longer needed.

if(xhr.overrideMimeType) xhr.overrideMimeType("text/html; charset=ISO-8859-1");
Share Improve this question edited Oct 3, 2010 at 19:34 john asked Oct 3, 2010 at 17:21 johnjohn 351 gold badge1 silver badge4 bronze badges 1
  • I don't think this works any more...hope I am wrong! – Brian McGinity Commented Dec 23, 2014 at 23:45
Add a ment  | 

2 Answers 2

Reset to default 1

You don't need anything fancy like overrideMimeType. Just make sure the encodings of your main and AJAX-loaded page are correct (preferrably UTF-8 for both). Most likely, you have forgotten the meta tag declaring the encoding.

I can't change the encoding with the meta tag and access to the server. In IE I access the responseBody to create a responseText with the correct chars. Here is my answer :

https://stackoverflow./a/22030309/3353928

发布评论

评论列表(0)

  1. 暂无评论