Raison :
L'url est codée avec ISO-8859-1
lors de la transmission de la requête HTTP, et le serveur le reçoit. Par défaut, le flux d'octets sera décodé en un flux de caractères en utilisant l'encodage ISO-8859-1
(provoquant des caractères chinois tronqués).
Méthode 1 :
Nous devons d'abord utiliser ISO pour obtenir la chaîne de request.getParameter
(“参数名”)
-8859-1 l'encode en un flux d'octets, qui est ensuite décodé en un flux de caractères en utilisant UTF-8.
String str = new String(request.getParameter("参数名").getBytes("iso-8859-1"), "utf-8");
Il s'agit de résoudre le problème tronqué grâce au transcodage.
Partagez des didacticiels vidéo d'apprentissage en ligne : vidéo Java
Méthode 2 :
Nous pouvons également définir le jeu d'encodage d'URL (URIEncoding) via le fichier de configuration Tomcat pour définir l'encodage. Cette méthode est également une fois pour toutes.
Modifiez le fichier server.xml dans le répertoire Tomcat/conf
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>
Concentrez-vous sur les deux attributs userBodyEncodingForURI et URIEncoding.
le paramètre useBodyEncodingForURI
indique s'il faut utiliser le paramètre request.setCharacterEncoding pour réencoder les données soumises par l'URL et les données soumises par Méthode GET dans le formulaire. Par défaut, ce paramètre est faux.
Paramètre URIEncoding
Spécifie l'encodage pour un recodage (décodage) uniforme de toutes les requêtes GET.
La différence entre URIEncoding et useBodyEncodingForURI
URIEncoding est un recodage unifié de toutes les données demandées par GET.
useBodyEncodingForURI réencode les données en fonction du paramètre request.setCharacterEncoding de la page qui répond à la requête. Différentes pages peuvent avoir des codes de réencodage différents.
Articles et tutoriels connexes recommandés : Programme d'entrée Java
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!