Maison  >  Article  >  Java  >  Comment résoudre le problème du codage de caractères tronqués dans le développement JavaEE

Comment résoudre le problème du codage de caractères tronqués dans le développement JavaEE

巴扎黑
巴扎黑original
2017-07-21 17:03:201669parcourir

Il existe de nombreuses solutions pour gérer l'encodage des caractères sur Internet. Ici, je m'appuie sur les épaules de mes prédécesseurs et fais mon propre résumé.

À mon avis, la solution au problème du code tronqué est simplement de définir l'encodage à trois endroits :

1. Pages frontales telles que HTML et JSP

2. Les objets de requête et de réponse dans le servlet d'arrière-plan ;

 3. Fichier de configuration du serveur.

1. Lorsque l'encodage apparaît sur des pages frontales telles que HTML et JSP, vérifiez d'abord si la balise Meta d'une page frontale a l'encodage correctement défini. également l'en-tête de la page

<span style="background-color: #ffff00; color: #000000"><%</span><span style="background-color: #f5f5f5; color: #000000">@ page language</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #800000">java</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #000000"> import</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #800000">java.util.*</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #000000"> pageEncoding</span><span style="background-color: #f5f5f5; color: #000000">=</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #f5f5f5; color: #800000">utf-8</span><span style="background-color: #f5f5f5; color: #800000">"</span><span style="background-color: #ffff00; color: #000000">%><br></span>

2. Paramètres de demande et de réponse en arrière-plan

 2-1. requête, s'il n'y a pas de paramètre de requête Encodage, alors le contenu de la requête reçue sera tronqué. À ce stade, deux situations doivent être considérées :

  S'il s'agit d'une requête Get, obtenez d'abord. les paramètres dans la requête URL, Par exemple :

String method = request.getParameter("method");
Appelez ensuite l'objet String pour terminer la conversion de l'encodage des paramètres,

String parseMethod = new String(method.getBytes("ISO-8859-1"),"UTF-8");
Il existe deux méthodes de construction pour les paramètres de chaîne ici : convertir le paramètre de la forme d'une chaîne en un tableau de caractères comme premier paramètre, et le deuxième paramètre est la méthode d'encodage de la chaîne convertie.

 2-1-2. S'il s'agit d'une requête Post, ajoutez directement un code pour définir l'encodage avant d'obtenir les paramètres de la requête, c'est-à-dire appelez la méthode setCharacterEncoding de l'objet requête. pour définir l'encodage :

request.setCharacterEncoding("UTF-8");

 2.2. Une fois que le backend a terminé les opérations de logique métier et de persistance, il peut être nécessaire de générer les données du flux de réponse vers. le frontend. Si le contenu de sortie contient du chinois, vous devez définir l'encodage de l'objet de réponse. Vous pouvez appeler directement la méthode setContentType de l'objet de réponse :

response.setContentType("text/html;charset=utf-8");
<.>

3. Paramètres du fichier de configuration du serveur

Si les deux étapes actuelles ne fonctionnent toujours pas après la configuration, vous devriez également trouver le fichier de configuration du serveur server.xml dans le dossier conf sous le répertoire d'installation de le serveur. Par exemple, le mien est E: tomcat7.0conf Paramètres :

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
.

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