2010-07-21 6 views
1

nous avons une application de Wep, lors de l'utilisation des mots chinois dans la chaîne de requête GET ne peut pas obtenir le paramètre sur le côté serveur mais dans les données POST nous pouvons obtenir le bon paramètre sur le côté serveur. Le serveur est Tomcat. sur le côté serveur, nous utilisons l'encodage GBK pour obtenir les paramètres HTTP si je convertis l'encodage des paramètres dans la chaîne de requête de ISO8859-1 à GBK c'est vrai mais le problème est qu'il y a trop de pages JSP à changer.so je veux s'il y a de toute façon configurer IE pour envoyer une chaîne de requête en utilisant GBK mais iso8859-1. J'ai essayé de décocher "envoyer l'url UTF-8" option de IE, cela n'a pas fonctionné pour moi ...IE 8 problème d'encodage

PLZ AIDE DÉSOLÉ POUR MON MAUVAIS ANGLAIS!

// iPostChange int 0: ISO8859_1,1: NoChange, 2: ISO8859_1-> GBK, 3: GBK-> ISO8859_1,5: GBK

String sFlowNo = DataConvert.toRealString(iPostChange,(String)CurComp.getParameter("FlowNo")); 

iPostChange est utilisé pour définir codant pour la conversion, par défaut 1 ce qui signifie ne pas changer. FlowNo est censé être quelques mots chinois, si FlowNo est passé au serveur en URL (chaîne de requête HTTP GET) avec iPostChange par défaut je ne peux pas obtenir la chaîne chinoise, mais si FlowNo est passé au serveur dans un formulaire (en utilisant la méthode POST) peut obtenir la bonne chaîne chinoise.

est que IE8 ne prend pas en charge l'utilisation de caractères chinois dans l'URL?

+0

aucun problème à propos de l'anglais, pourriez-vous s'il vous plaît fournir un code réel sur ce que vous faites. – Anders

+0

Merci Anders, j'ai édité ma question. – idiotgenius

Répondre

1

corrigé.

voir: Tomcat wiki

Tomcat utilisera ISO-8859-1 comme le caractère par défaut le codage de l'URL complète, y compris la chaîne de requête ("GET paramètres"). Il existe deux façons de spécifier comment les paramètres GET sont interprétés:

  1. Définissez l'attribut URIEncoding sur l'élément dans server.xml à quelque chose spécifique (par exemple URIEncoding = "UTF-8").

  2. Définissez l'attribut useBodyEncodingForURI sur l'élément dans server.xml à true. Cela va pour que le connecteur utilise l'encodage du corps de la demande pour les paramètres GET .

1

Il est préférable de ne pas compter sur le codage des caractères dans les requêtes GET, que certains navigateurs les encoder en UTF-8 et d'autres vont les encoder ISO-8859-1. En outre, le codage appliqué dépend du codage de la page qui a envoyé le formulaire. Ainsi, si un formulaire sur une page encodée en UTF-8 aboutit à une requête GET codée en UTF-8, un formulaire similaire sur une page avec L'encodage ISO-8859-1 conduira à une requête codée ISO-8859-1. Pour plus de détails, voir également What's the correct encoding of HTTP get request strings?.

+0

oui! Je suis totalement d'accord. Mais je maintiens un héritage System.tons des pages JSP!: D – idiotgenius