Maison >Java >JavaBase >Des caractères tronqués apparaissent lorsque l'URL transmet les paramètres chinois en Java

Des caractères tronqués apparaissent lorsque l'URL transmet les paramètres chinois en Java

王林
王林original
2019-12-05 14:05:032380parcourir

Des caractères tronqués apparaissent lorsque l'URL transmet les paramètres chinois en Java

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn