Maison >Java >JavaBase >Solution au problème de paramètre Java tronqué

Solution au problème de paramètre Java tronqué

尚
original
2020-01-13 16:11:012125parcourir

Solution au problème de paramètre Java tronqué

Pour les données soumises en mode Post, vous pouvez utiliser request.setCharacterEncoding("gb2312"); Mais cette méthode n'est valable que pour la soumission post.

request.setCharacterEncoding("gb2312"); La raison pour laquelle il n'est pas valide pour la soumission GET est que ce code définit uniquement l'encodage de l'entité de requête et que les données soumises par GET sont stockées dans la ligne de requête [ nom de la ressource?param1 ="Zhang San"¶m2=123], donc la méthode de requête GET n'est pas valide.

Pour les données soumises par la méthode Get, vous ne pouvez résoudre le code tronqué que manuellement :

String newName=newString(name.getBytes("ISO8859-1"),"gb2312");
String user=newString(request.getParameter("user").getBytes("ISO-8859-1"),"UTF-8");

Bien sûr, cette méthode est également efficace pour la méthode Post.

L'URIENcoding du connecteur http peut être configuré dans le server.xml de Tomcat pour spécifier l'encodage utilisé par le serveur par défaut lors de l'obtention des paramètres de la requête.

Les instructions suivantes sont généralement utilisées dans les servlets pour résoudre le problème des caractères chinois tronqués :

request.setCharacterEncoding() consiste à définir la valeur obtenue à partir de la requête ou la valeur extraite du base de données.

Le but de réponse.setContentType() est de contrôler le comportement du navigateur, c'est-à-dire de contrôler le navigateur pour qu'il utilise l'encodage spécifié pour décoder (spécifiez l'encodage de la réponse HTTP et spécifiez l'encodage affiché par le navigateur).

response.setCharacterEncoding() est utilisé pour résoudre le problème des chaînes tronquées générées par Response.getWriter(); s'il s'agit de Response.getOutputStream(), cette solution n'est pas nécessaire, car cette phrase le signifie. consiste à décoder les données de l'objet de réponse en UTF-8 et à les envoyer au navigateur.

response.getOutputStream().write("Chinese".getBytes()) génère des données. Il s'agit d'un flux d'octets, quel que soit le codage utilisé lors de l'écriture en mémoire.

Pour plus de connaissances sur Java, veuillez faire attention à la colonne Tutoriel de base Java sur le site Web PHP chinois.

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