Jquery ignore l'encodage ISO-8859-1

J'ai un site Web qui supprime avec précaution le codage correct (ISO-8859-1) d'une chaîne et l'envoie mal.

J'ai ce codage spécifié dans mon HTML

<meta charset="ISO-8859-1"> 

Je charge mon javascript via

 <script type="text/javascript" charset="ISO-8859-1" src="... 

J'envoie des informations via JQuery Ajax Demande comme ceci (avec le caractère spécial allemand 'ö' et 'ä'):

 $.ajax({ url: '..', type: 'POST', contentType: 'application/xml;charset=ISO-8859-1', data: xmlRequest.html(),... 

Ceci est traduit en une demande et dans les outils de développement de chrome, je le vois dans l'en-tête de requête:

 .. Content-Type: application/xml;charset=UTF-8 .. 

Qu'est-il arrivé là-bas?

Bien sûr, les caractères spéciaux sont codés incorrects ("ö" au lieu de "ö"), le serveur ne peut pas me comprendre et je reçois une erreur.

Parce que j'ai eu le même problème, je vais fournir une solution qui a fonctionné pour moi. Contexte: Microsoft Excel est trop stupide pour exporter un fichier CSV dans charset UTF-8:

 $.ajax({ url: '...', contentType: 'Content-type: text/plain; charset=iso-8859-1', // This is the imporant part!!! beforeSend: function(jqXHR) { jqXHR.overrideMimeType('text/html;charset=iso-8859-1'); } }); 

Selon la documentation jQuery.ajax() contentType :

Les données seront toujours transmises au serveur en utilisant le jeu de caractères UTF-8; Vous devez décoder cela de manière appropriée du côté du serveur. "