Maison  >  Article  >  Java  >  Solution de code tronqué pour la soumission Java

Solution de code tronqué pour la soumission Java

尚
original
2019-12-17 14:54:132419parcourir

Solution de code tronqué pour la soumission Java

Solution de soumission Java tronquée :

1. Si la méthode de soumission est post et que vous souhaitez éviter les caractères tronqués, il vous suffit de définir l'encodage de la requête. objet côté serveur. Le client Quel encodage est soumis par le client, l'objet de requête côté serveur est reçu dans l'encodage correspondant. Par exemple, si le client est soumis en codage UTF-8, alors l'objet de requête côté serveur. est reçu en codage UTF-8 (request.setCharacterEncoding("UTF -8"))

2. Si la méthode de soumission est get, la définition du codage de l'objet de requête n'est pas valide. L'objet de requête reçoit toujours des données. dans le codage ISO8859-1 par défaut. Par conséquent, si vous souhaitez éviter les caractères tronqués, vous ne pouvez les convertir manuellement qu'après avoir reçu les données :

1). le client, et ce que vous obtenez est une chaîne tronquée, data="???è????"

String data = request.getParameter("paramName");

2). Recherchez dans la table de codes ISO8859-1 et obtenez le tableau d'octets des données d'origine. soumis par le client

byte[] source = data.getBytes("ISO8859-1");

3). Construire des caractères avec l'encodage spécifié via le tableau d'octets String, résoudre les caractères tronqués

data = new String(source, "UTF-8");

Construire une chaîne avec l'encodage spécifié via un tableau d'octets. Le codage spécifié ici est basé sur le codage de caractères utilisé lors de la soumission des données du client. S'il s'agit de GB2312, définissez-le sur data = new String(source, "GB2312"), s'il s'agit de UTF-8. puis définissez-le sur data = new String(source, "UTF-8")

3. Client Si vous souhaitez transmettre des données au serveur, vous pouvez les soumettre via un formulaire, ou vous pouvez ajouter des paramètres après. le lien hypertexte, par exemple :

<a href="${pageContext.request.contextPath}/servlet/RequestDemo05?userName=gacl&name=房明">点击</a>

Cliquez sur le lien hypertexte, et les données sont transmises au serveur sous forme de get, donc recevez Le problème des caractères chinois tronqués se produira également lors de l'utilisation de données chinoises. résoudre le problème des caractères chinois tronqués est la même que la méthode mentionnée ci-dessus pour gérer le problème des données chinoises tronquées lors de la soumission de formulaires via get, comme indiqué ci-dessous :

String name = request.getParameter("name");
name =new String(name.getBytes("ISO8859-1"), "UTF-8");

De plus, il y a d'autres choses qui nécessitent à mentionner Un point est que si l'adresse URL est suivie de données chinoises, alors les paramètres chinois sont mieux traités en utilisant le codage URL, comme indiqué ci-dessous :

<a href="${pageContext.request.contextPath}/servlet/RequestDemo05?userName=gacl&name=<%=URLEncoder.encode("房明", "UTF-8")%>">点击</a>

Pour plus de connaissances sur Java, veuillez faire attention au Tutoriel de base 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