Lorsqu'un collègue rencontre des problèmes de codage, il veut faire un filtre d'encodage de personnage qui résout tout le site. La classe de filtre et la configuration sont les suivantes:
Classe de filtre:
<span style = "Font-Size: 12px;"> package com.chaoxing.newspaper.web.filter; import java.io.ioexception; import java.lang.reflect.invocationhandler; import java.lang.reflect.method; import java.lang.reflect.proxy; importation javax.sservlet.filter; javax.servlet.filterchain; import javax.servlet.filterconfig; import javax.servlet.servletException; import javax.servlet.servletRequest; import javax.servlet.servletResponse; import javax.servlet.http.httpservletRequest; Importer; javax.servlet.http.httpservletResponse; public class CaracterEncodingFilter implémente filter {public void dofilter (servletRequest req, servletResponse res, filterchain chaîne) lance ioexception, servlexception {System.out.println ("exécution de filter"); HttpServLetRequest Final Request = (httpServleRequest) req; HttpServletResponse Response = (httpServletResponse) Res; // résolu la demande de code brouillé chinois.SetcharAtterencoding ("UTF-8"); Response.SetcharAtterencoding ("UTF-8"); Response.SetContentType ("Text / HTML; charSet = UTF-8"); chain.dofilter ((servLetRequest) proxy.newproxyinstance (this.getClass (). getClassLoader (), request.getClass (). getInterfaces (), new invocationhandler () {@ overRidePublic Object Invoke (Object Proxy, méthode méthode, objet [] args) lance le cours de la méthode thringt if (methodName.equals ("getParameter")) {// EXECUTER. System.out.println (Valeur + "|||||"); res);} public void init (filterConfig fConfig) lève ServletException {System.out.println ("Filter Initialisation");} @ OverRidepublic void destre () {System.out.println ("Filter complet");}} </pan>Configuration du filtre:
<span style = "Font-Size: 12px;"> <! - Résolvez des filtres qui sont brouillés sur tout le site -> <filter> <filter-name> CaracterCcoding </filter-Name> <Filter-Class> com.xxx.web.filter.characterencodingFilter </filter-Class> </filter> <hilter-Mapping> <filter-name> CaractorEncoding </filter-name> <url-sattern> / * </url-stern> </filter-mapping> </span>
Cependant, lorsque le formulaire frontal soumet la méthode, ce que vous obtenez est toujours brouillé.
Au début, j'étais confus quant à savoir si le filtre était mal écrit et si l'ensemble de codage était mal écrit. Cependant, après les tests, il n'y avait rien de mal. Le filtre fonctionnait normalement.
Enfin, modifiez Value.getByte ("ISO-8859-1", "UTF-8") à Value.getByte ("UTF-8", "UTF-8") et obtenez la valeur en arrière-plan, qui n'est plus brouillé. Enfin, Baidu est allé à
On dit que l'ensemble de codage par défaut de TomCat8 est UTF-8, et l'ensemble de codage par défaut de TomCat8 avant est ISO-8859-1, et je me suis soudainement réalisé ...
Résumé: L'ensemble de codage par défaut avant Tomcat7 et sa version sont ISO-8859-1, et le jeu de caractères par défaut de TomCat8 est déjà UTF-8, il n'a donc plus besoin de transcoder le résultat de request.getParameter (), et il n'est pas nécessaire d'encoder la classe de filtre de codage.
La solution au problème de l'encodage de caractères de filtre de filtre invalide basé sur TomCat8 est le contenu entier partagé par l'éditeur. J'espère que cela pourra vous donner une référence et j'espère que vous pourrez soutenir Wulin.com plus.