59 votes

Définition du codage de caractères dans l'envoi de formulaire pour Internet Explorer

J'ai une page qui contient un formulaire. Cette page est servi avec un type de contenu text/html;charset=utf-8. J'ai besoin de soumettre ce formulaire au serveur à l'aide de l'ISO-8859-1 codage de caractères. Est-ce possible avec Internet Explorer?

Réglage accept-charset attribut d'élément de formulaire, comme ceci, fonctionne pour Firefox, Opera, etc. mais pas pour IE.

<form accept-charset="ISO-8859-1">
  ...
</form>

Edit: Ce formulaire est créé par le serveur Un et sera soumis au serveur B. je n'ai pas de contrôle sur le serveur B.

Si j'ai mis Un serveur pour servir du contenu avec le jeu de caractères ISO-8859-1, tout fonctionne, mais je suis à la recherche d'un moyen de faire fonctionner sans modifications du serveur d'encodage. J'ai une autre question sur la définition de l'encodage du serveur A.

32voto

dgaspar Points 332

Avec des navigateurs décents:

 <form accept-charset="ISO-8859-1" .... >
 

Avec IE (tout):

 document.charset = 'ISO-8859-1'; // do this before submitting your non-utf8 <form>!
 

6voto

Juha Syrjälä Points 11475

Il semble que cela ne puisse pas être fait, du moins avec les versions actuelles d’IE (6 et 7).

IE prend en charge l'attribut de formulaire accept-charset, mais uniquement si sa valeur est 'utf-8'.

La solution consiste à modifier le serveur A afin de produire un codage «ISO-8859-1» pour la page contenant le formulaire.

5voto

Christian Points 51

J'ai le même problème ici. J'ai une page UTF-8 un besoin de poster sur un serveur ISO-8859-1.

On dirait que IE ne peut pas gérer ISO-8859-1. Mais il peut gérer ISO-8859- 15.

 <form accept-charset="ISO-8859-15">
  ...
</form>
 

Donc, cela a fonctionné pour moi, puisque ISO-8859-1 et ISO-8859-15 sont presque les mêmes.

2voto

Edward Z. Yang Points 13760

Si vous avez le moindre accès au serveur, convertissez son traitement en UTF-8. L'art de soumettre des formulaires non UTF-8 est une histoire longue et regrettable. Ce document sur les formulaires et i18n peut présenter un intérêt. Je comprends que vous ne semblez pas vous soucier du soutien international. vous pouvez toujours convertir les données UTF-8 en entités HTML pour vous assurer qu'elles restent en Latin-1.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X