Heim  >  Artikel  >  Java  >  Wie geht der Java-Filter mit verstümmelten chinesischen Zeichen um?

Wie geht der Java-Filter mit verstümmelten chinesischen Zeichen um?

藏色散人
藏色散人Original
2020-04-11 10:03:432282Durchsuche

Wie geht der Java-Filter mit verstümmelten chinesischen Zeichen um?

Wie geht der Java-Filter mit verstümmelten chinesischen Zeichen um?

Achtung: Beim Erlernen der Verwendung des Selvert-Filters zur Verarbeitung verstümmelter chinesischer Zeichen wurde bei der Initialisierung der Filterkonfiguration utf-8 zur Verarbeitung verstümmelter chinesischer Zeichen verwendet, auf der übermittelten JSP-Seite wurde jedoch gbk verwendet. . Obwohl beide chinesische verstümmelte Zeichen erzeugen können, führen sie zu inkonsistenten Formaten für die Verarbeitung verstümmelter Zeichen. Der Kompilierungsfehler ist also aufgetreten.

Empfohlenes Tutorial: „Java lernen

Lösung: UTF-8 oder GBK überall verwenden

//过滤器类
CharactorFilter.jsp
package cn.com.Filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharactorFilter implements Filter { //继承Filter类
    //字符编码
    String encoding=null;
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        if(encoding!=null){
        //设置request字符编码
            request.setCharacterEncoding(encoding);
         //设置response字符编码
            response.setContentType("text/html;charset="+encoding);
        }
     //传递给下一个过滤器
        chain.doFilter(request, response);
    }
    public void init(FilterConfig filterConfig) throws ServletException {
      //获取初始化参数
        encoding=filterConfig.getInitParameter("encoding");
    }
    public void destroy() {
        // TODO Auto-generated method stub
        encoding=null;
    }
}

web.xml

<filter>      <!--注意这里是filter,不要配置成servlet-->
    <filter-name>CharactorFilter</filter-name>    <!--过滤器名称-->
   <filter-class>cn.com.Filter.CharactorFilter</filter-class>  <!--过滤器的完整类名-->  
     <init-param>   <!--初始化参数-->  
         <param-name>encoding</param-name>  <!--参数名称-->  
         <param-value>utf-8</param-value>   <!--参数值-->  
     </init-param>
  </filter>
  <filter-mapping> <!--过滤器映射--> 
      <filter-name>CharactorFilter</filter-name><!--过滤器名称-->   
      <url-pattern>/*</url-pattern><!--URL映射,给所有页面处理乱码-->  
      </filter-mapping>

Das obige ist der detaillierte Inhalt vonWie geht der Java-Filter mit verstümmelten chinesischen Zeichen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn