Bonjour,
J'ai un site web en ASP classique et je désire maintenant pouvoir afficher le site web en Chinois. Pour ce faire, je dois tout changer l'encodage des pages pour utf-8 plutôt que l'iso-8859-1 qui est actuellement utilisé.
Mon problème est le suivant, lorsque l'internaute lance une page, le site web fait des requêtes http à un autre serveur distant (application en ASP classique aussi) en utilisant un objet winhttprequest en utilisant le type MIME application/x-www-form-urlencoded.
Depuis que j'ai modifié l'encodage de mes pages, le serveur distant qui reçoit les requêtes envoyées par le serveur web n'enregistre plus les caractères accentués correctement car Server.URLEncode("é") donnait "%9E" quand le site web était iso-8859-1, mais maintenant ça donne "%C3%A9" ce qui fait que sur le serveur distant, il décode en "é" au lieu de "é".
Y aurait-il moyen d'indiquer au serveur distant que ma requête est encodée en utf-8 et qu'il doit donc décoder utf-8 ? J'ai essayé de mettre le header ci-dessous mais ça n'y change rien:
httpReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"
Si possible il serait préférable que l'administrateur du serveur distant n'ait pas à mettre à jour son application.
La question fondamentale de ce problème est, comment indique-t-on à un serveur en quel charset est fait la requête ? Le client (exemple un navigateur) détecte bien automatiquement le charset de la réponse du serveur, alors pourquoi pas l'inverse ?
Merci d'avance !
Partager