|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Inscription : mai 2006 Messages : 64 ![]() |
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: Code :
httpReq.setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8" 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 ! |
|
|
00
|
|
|
#2 |
![]() ![]() |
Salut,
Pour un site chinois l'utf-8 ne correspond pas... Utf-8 c'est pour les caractères latin mais sans les accents, si tu regardes les sites chinois par exemple chinatv tu verras qu'ils utilisent le charset suivant : tout comme pour le japonais qui correspond à
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours FAQ ASP |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Inscription : mai 2006 Messages : 64 ![]() |
Désolé mais je ne suis pas d'accord avec ça, utf-8 supporte les caractères de toutes les langues et c'est devenu le standard pour les sites web. De toute façon le problème ne réside pas dans le choix du charset.
|
|
|
00
|
|
|
#4 | |
![]() ![]() |
Soit, mais je ne comprend pas trop,
Citation:
si tu veux afficher ton site en chinois en principe, on ajoute un dossier (ou sous-domaine) qui reprend le site mais écrit dans la langue étrangère...
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours FAQ ASP |
|
|
|
00
|
|
|
#5 | |
|
Membre Expert
![]() ![]() Demazy MbellaDéveloppeur Web Inscription : août 2010 Messages : 620 ![]() |
Citation:
cette méthode est trop fastidieuse cella revient a developper 3 fois le meme site si l'on veux 3 langue or chaque language propose des solutions comme stockée les données dasn plusieurs langues et garder le meme site et ainsi en fonction de la langue le site ira chercher l'information correspondante ou alors l'usage des fichiers ressources pour chaque langue (cas de asp.net) |
|
|
|
00
|
|
|
#6 |
|
Membre à l'essai
![]() Inscription : mai 2006 Messages : 64 ![]() |
Ok je reformule:
j'ai une application asp (client) dont les pages sont encodées en utf-8 qui envoi une requête avec winhttp à une autre application asp (serveur) dont les pages sont encodées différement (windows-1252 ou iso-8859-1 par exemple) Comment faire pour que l'application appelée décode les paramètres envoyés en post de la bonne façon ? On doit bien pouvoir indiquer au serveur en quel encodage la requête est effectuée non ? |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Inscription : octobre 2009 Messages : 161 ![]() |
Au risque de dire une bêtise, vu que tu récupérer tes info par ton script asp, est ce que en modifiant la valeur de ton CODEPAGE cela ne résoudrait pas ton soucis ?
(Le code page de l'appli que reçois le code) Code :
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> |
|
00
|
|
|
#8 | |
|
Membre à l'essai
![]() Inscription : mai 2006 Messages : 64 ![]() |
Citation:
C'est pour ça que je cherche solution temporaire qui va permette de mettre le site web à jour, et par la suite mettre les serveurs distants à jour graduellement. Évidemment, j'accepte que les caractères non latin ne puissent pas être traités par les serveurs distants qui n'auront pas encore été mis à jour, mais je voudrais qu'ils puissent au moins continuer à traiter les caractères latins malgré le fait que le site web a changé d'encodage. La meilleure solution que j'ai trouvé jusqu'à maintenant est de convertir les string utf-8 du site web en ANSI avant d'envoyer au serveur distant qui n'est pas encore mis à jour. Toutefois je n'ai pas encore réussi à faire fonctionner correctement. |
|
|
|
00
|
|
|
#9 | ||
|
Membre à l'essai
![]() Inscription : mai 2006 Messages : 64 ![]() |
Toute mes tentatives de ré-encoder la string en latin-1 avant d'envoyer à l'application distante n'ont pas fonctionné. J'ai néamoins trouvé la solution, il suffit que je change le code page avant d'url encoder les paramètres de la requête puis que je le remette à ce qu'il était après
Code :
|
||
|
|
00
|
|
|
#10 | |
![]() ![]() |
Citation:
__________________
Ne dites pas Java pour dire Javascript ! Ces deux codes n'ont rien à voir ! // Essayez d'expliquer, de la façon la plus claire possible votre problème. // Parfois une image vaut mieux qu'un long discours FAQ ASP |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com