1.JSP里CHARSET要为GB2312
contentType="text/html;charset=GB2312"
2.SERVERLET类里要有
request.setCharacterEncoding(gb2312);
3.字符集的重新格式化
java.net.URLEncoder java.net.URLDecoder 对应的encode 与decode进行编码解码。
在传输数据时候浏览器会自动对要表单传输的数据进行url编码,所使用的编码方式取决于当前网页显示时候使用的编码方式。
对于http请求消息的url地址后的参数,getparameter等方法进行自动url解码时采用的编码方式取决servlet引擎;tomcat默认用ISO8859-1进行解码。serverletserverlet
重新格式化语句如下:
String str1 = new String(request.getParameter("name").getBytes("ISO-8859-1"),"gb2312");
4.TOMCAT的CONF文件夹里的SERVER.XML中大约92行左右.(如果你没改过)
找到connector区块,加入如下一行:
URIEncoding="GBK" 或 URIEncoding="GB2312" 或 URIEncoding="UTF-8"
完整的应如下:
<Connector
port="80" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true"
URIEncoding="GB2312"
/>
5.Tomcat的conf文件夹下的web.xml文件的<servlet></servlet>标签之间添加如下代码
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
6.使用Servlet规范中的过虑器指定编码
<1>.新创建一个servlet时,Inteces接口:继承javax.servlet.Filter
options中只需选中:create Inherited Methods; create Constructors;
建好后在其doFilter()方法中:
arg0.setCharacterEncoding("gb2312"); //实现请求乱码的处理
arg1.setCharacterEncoding("gb2312"); //实现响应乱码的处理
arg2.doFilter(arg0,arg1); //继续执行其他过滤器 或 jsp、servlet
<2>.再在web.xml中把过滤器servlet中的相关内容的<servlet></servlet>改为<filter></filter>
并修改<filter-mapping></filter-mapping>中的<url-patterm>/*</url-patterm> ; “/*”表示执行任何文件
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-25041-1.html
现在正是当打之年
人家已经出发了