坛子里 总是有一些新手问如何防止乱码,这里写下来回复的时候方便 ^_^
其实防止乱码很简单配置三个地方
1)配置tomcat的server.xml中;加入URIEncoding="GBK"
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK"/>
2)配置JSP页面中
<%@ page language="java" pageEncoding="GBK"%>
3)如果是用servlet可以将这两句话加到过滤器中,这样就不需每次都写了
可以在doGet(),doPost()方法开始加入: request.setCharacterEncoding("GBK"); response.setCharacterEncoding("GBK"); 也可以使用过滤器: <!--web.xml--> <filter> <filter-name>EncodingFilter</filter-name> <filter-class>com.cl.filter.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> /**编码过滤器*/ public class EncodingFilter implements Filter { private String encode = "GBK"; public void init(FilterConfig config) throws ServletException { String gbk = config.getInitParameter("encoding"); if(gbk == null || gbk.equals("")){ return; }else{ encode = gbk; } } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding(encode); response.setCharacterEncoding(encode); chain.doFilter(request, response); } public void destroy() { } }
3)如果是struts的话配置一个常量
<constant name="struts.i18n.encoding" value="GBK" />
以上三个地方配置就不会出现乱码了。