2010-10-03 6 views
3

Ceci est une question qui n'a jamais une bonne réponse, j'ai cherché sur le net plusieurs fois et je ne pouvais pas trouver une solution.overrideMimeType alternative pour 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); 

Cela fonctionne pour firefox, chrome. Mon responseText retournera char comme Réunion, qui apparaîtra comme des symboles étranges.

J'ai essayé plusieurs méthodes comme le codage et le décodage, en réglant l'en-tête dans le fichier de réponses qui ne fonctionne pas. Je n'ai plus d'idées. S'il vous plaît, aidez quelqu'un.


**SOLUTION** 

Dans votre fichier principal, assurez-vous de définir votre type de contenu et charset.

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

Dans votre page chargée AJAX, assurez-vous que vous avez ce en haut.

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

Problème résolu, votre homme heureux. ce n'est plus nécessaire.

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

Je ne pense pas que cela fonctionne plus ... Espérons que je me trompe! –

Répondre

1

Vous n'avez pas besoin de quelque chose de fantaisie comme overrideMimeType. Assurez-vous simplement que les encodages de votre page principale et AJAX sont corrects (de préférence UTF-8 pour les deux). Très probablement, vous avez oublié le meta tag déclarant l'encodage.

+0

Utilisez les en-têtes HTTP, ils ont une priorité élevée, puis des méta-équivoques, et ne redémarrent pas l'analyse si le navigateur se rend compte qu'il utilisait un mauvais encodage. – Quentin

+0

me demandez-vous de mettre à la fois ma page principale et ajax-chargé? si oui, après le réglage, ma page principale a également le même problème, et le résultat ajax est toujours le même. S'il vous plaît aviser – john

+0

je suis désolé mais cela a réglé le problème, mais mon charset nécessaire serait iso-8859-1. Merci beaucoup – john

0

Je ne peux pas changer le codage avec la balise meta et l'accès au serveur. Dans IE, j'accède au responseBody pour créer un responseText avec les caractères corrects. Voici ma réponse:

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