Problème d'encodage de caractères

Felmorian Messages postés 2 Date d'inscription vendredi 6 juillet 2001 Statut Membre Dernière intervention 4 juillet 2006 - 4 juil. 2006 à 15:11
Felmorian Messages postés 2 Date d'inscription vendredi 6 juillet 2001 Statut Membre Dernière intervention 4 juillet 2006 - 4 juil. 2006 à 17:37
Bonjour à tous. J'ai un gros soucis d'encodage sur un site et je n'arrive pas à le résoudre ni même à le comprendre. J'expose la situation.
Il s'agit d'un site fait en ASP avec une base MS SQL-Server, sous IIS 6

L'encodage dans mes pages est géré comme suit :
dans l'ASP :
    Response.CharSet = "ISO-8859-15"
    Response.ContentType="text/html; charset=ISO-8859-15"
dans le HTML :
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">

Lorsque j'utilise l'intranet en passant uniquement pas le serveur IIS tout les caractères sont corrects, tout fonctionne correctement.

Il s'avère que nous devons passer par un serveur APACHE lorsqu'on veut se connecter sur l'intranet en mode extranet. Evidemment je n'ai pas accès à ce serveur et lorsqu'on passe par le "https" tous les caractères comme "é", etc. sont tous massacrés.
L'intranet est donc plublié par le serveur IIS, mais passe en plus par ce serveur APACHE.

En outre, le fichier HTML est réduit. en éditant la source le Doctype a disparu et lorsque je regarde les entère HTTP, je remarque que le content-type de la balise méta est au bon jeu de caractère "ISO-8859-15", mais que l'entête HTTPa un jeu de caractère UTF-8 (je regarde ça avec FireFox).
Evidemment lorsque je passe tout en UTF-8, tout est marqué comme UTF-8, mais les caractères sont mauvais tout de même.

Je m'arrache les cheveux depuis des heures sur ce problème. Quelqu'un aurait-il une explication / solution ?

1 réponse

Felmorian Messages postés 2 Date d'inscription vendredi 6 juillet 2001 Statut Membre Dernière intervention 4 juillet 2006
4 juil. 2006 à 17:37
Bon après de longues recherches, il s'avère que le serveur Apache a du mal à comprendre les requetes http en POST/GET, je ne comprend pas vraiment.

J'ai trouvé néanmoins un moyen de faire passer correctement les caractères accentués, etc...
J'ai créé une fonction urlencode et urldecode en javascript qui remplace les chaines de caractère saisies dans les input par :
- Les espaces par des +
- Les é,è, etc. par des escape(char) -> donc des %2B, etc...
Lorsque je reçois ces informations j'utilise urldecode (une fonction ASP que j'ai crée, qui fait l'inverse avec un unescape).

Cependant escapte utilise le jeu de caractère ISO-Latin-1, du coup les ? ou "oe"  ne sont pas reconnus...
Quelqu'un saurait comment faire pour résoudre ce problème ?
0
Rejoignez-nous