Lorsque je travaillais sur un projet, j'ai constaté qu'Action obtenait les paramètres chinois sous la forme jsp. Tant que l'ensemble du projet utilise le format d'encodage UTF-8, il n'y aura pas de problème de code tronqué. Cependant, JS est utilisé dans JSP et les paramètres chinois le sont. passé de JS à Action Il y a une confusion en chinois. Après avoir demandé plusieurs fois à Baidu, les opinions sont nombreuses.
Après la pratique, j'ai découvert que la méthode suivante peut résoudre le problème des caractères chinois tronqués :
Dans JS : les paramètres chinois de JSP utilisent encodeURI (encodeURI (paramètre chinois)), qui est transcodé deux fois. Par exemple:
Copiez le code comme suit :
fonction show(suivant,id,realName){
document.forms['f2'].action="usersearchNextPage?next="+next+"&id="+id+"&realName="+encodeURI(encodeURI(realName));
document.forms['f2'].submit();
}
Où realName est un paramètre chinois. Par conséquent, realName est transcodé deux fois dans l’URL soumise. encodeURI (encodeURI (nom réel))
En action : décoder lors de la réception des paramètres chinois. Utilisez : java.net.URLDecoder.decode(realName, "UTF-8");
comme:
Copiez le code comme suit :
String realName = ServletActionContext.getRequest().getParameter("realName");
essayer {
realName = java.net.URLDecoder.decode(realName,"UTF-8");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
Après le traitement ci-dessus, le problème est résolu.