毕业设计急用(中文乱码处理)
package servletLister;
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;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CheckFilter implements Filter {
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request1 = (HttpServletRequest)request;
HttpServletResponse response1 = (HttpServletResponse)response;
response1.setContentType( "text/html; charset=gbk ");
request1.setCharacterEncoding( "GBK ");
System.out.println( "Filter------------ ");
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
}
}
在页面上的配置正确,也通过过滤器,但是还是有乱码
[解决办法]
你检查一下你每个JSP页面的编码格式是否为gbk,JSP中的编码格式必须与过滤器中设置的一样,否则会出现乱码.
[解决办法]
<%@ page language= "java " pageEncoding= "gbk "%>
<%@ taglib uri= "http://struts.apache.org/tags-bean " prefix= "bean " %>
<%@ taglib uri= "http://struts.apache.org/tags-html " prefix= "html " %>
<%@ taglib uri= "http://struts.apache.org/tags-logic " prefix= "logic " %>
<%@ taglib uri= "http://struts.apache.org/tags-tiles " prefix= "tiles " %>
<%@ taglib uri= "/WEB-INF/taglibs/struts-nested.tld " prefix= "nested "%>
<%
response.addHeader( "pragma ", "no-cache ");
response.addHeader( "cache-control ", "no-cache ");
response.addHeader( "expries ", "0 ");
%>
<html:html>
<HEAD>
<META http-equiv= "Content-Type " content= "text/html; charset=gbk " />
<META http-equiv= "Content-Style-Type " content= "text/css " />
<SCRIPT language=JavaScript src= "js/common.js "> </SCRIPT>
<LINK href= "css/common.css " type=text/css rel=stylesheet />
[解决办法]
关注
[解决办法]
up
[解决办法]
在CheckFilter 类中这样写:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request1 = (HttpServletRequest)request;
HttpServletResponse response1 = (HttpServletResponse)response;
response1.setCharacterEncoding( "GBK ");
request1.setCharacterEncoding( "GBK ");
System.out.println( "Filter------------ ");
chain.doFilter(request, response);
}
然后在web.xml中定义:
<filter>
<filter-name> encodingfilter </filter-name>
<filter-class> servletLister.CheckFilter </filter-class>
</filter>
<filter-mapping>
<filter-name> encodingfilter </filter-name>
<url-pattern> /* </url-pattern>
</filter-mapping>
这样全部搞定!!!
[解决办法]
up 果然是高手啊
这样写很棒哦
[解决办法]
关注
[解决办法]
TOMCAT中request.setCharacterEncoding( "GBK ");在默认情况下只对POST方式传输的参数有效,要它兼容GET方式还需要另外进行设置。
[解决办法]
如果是参数中的乱码的话可以通过修改Tomcat中conf下的server.xml解决:
我是在server.xml中的 <connector> 中添加URIEncoding= "gb2312 "。添加后的的 <connector> 为:
<Connector
port= "8080 " maxHttpHeaderSize= "8192 "
maxThreads= "150 " minSpareThreads= "25 " maxSpareThreads= "75 "
enableLookups= "false " redirectPort= "8443 " acceptCount= "100 "
connectionTimeout= "20000 " disableUploadTimeout= "true " URIEncoding= "GB2312 "/>
这样可以解决URL编码的乱码问题 其他的可以通过过滤器实现 就像前几楼说的那样
[解决办法]
假设原字符串为str = new String(str.getBytes( "ISO8859_1 "), "gbk ");
[解决办法]
你先得说清楚你的乱码是怎么来的。。如果是通过URL参数传递的话,中文确实是乱码,也就是get方式会出现乱码,可以用楼上的方式来转换编码