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

王林
Libérer: 2019-12-05 14:05:03
original
2381 Les gens l'ont consulté

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");
Copier après la connexion

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"/>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal