Java에서 필터로 중국어 왜곡 문자를 처리하는 방법
참고: selvert의 필터를 사용하여 중국어 왜곡 문자를 처리하는 방법을 배울 때 필터 초기화 중에 중국어 왜곡 문자를 처리하는 데 utf-8이 사용되었습니다. 그러나 제출된 jsp 페이지에서는 gbk가 사용되었습니다. 둘 다 잘못된 중국어 문자를 생성할 수 있지만 잘못된 문자를 처리할 때 형식이 일관되지 않게 됩니다. 그래서 컴파일 오류가 발생했습니다.
추천 튜토리얼: "java learning"
해결책: 어디서나 utf-8 또는 gbk를 사용하세요
//过滤器类 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>
위 내용은 자바 왜곡 필터에 대한 솔루션의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!