转载 http://blog.csdn.net/csh624366188/article/details/6657350html
一 找出问题的根源
乱码可能出现的地方:1 jsp页面中
2 jsp页面之间相互传参的参数
3 与数据库中数据的存取
基本概括为以上几种。
二 寻找解决方案
1 出如今jsp页面中,是因为没有设置jsp页面的中文字符编码。
2 出如今jsp页面之间相互传参,是因为参数没有设置正确的字符编码。
3 以上2个问题解决了,那么存到数据库中,天然就不存在乱码。除非你对存入到数据库里的数据再次进行编码。
三解决方法:
1的解决方法
web
<% @ page contentType = " text/html;charset=gb2312 " %>
加上这句解决jsp页面中的中文乱码显示,tomcat编译完后向客户端输出的html文件不是采
用中文编码,因此会致使乱码产生。
2的解决方法
2.1 数据库
<% request.setCharacterEncoding( " gb2312 " ); %>
加上这句解决jsp页面中的中文参数传递乱码。
由于浏览器默认使用的编码是“UTF-8”发送请求参数。
咱们把它改成"gb2312"就ok了。
2.2浏览器
String(request.getParameter("name").getBytes("ISO8859_1"),"GB2312");
这句的意思是,把传来的参数所有编码转换成gb2312,这样作的缺点是每次传来一个参数
都要这样写,很麻烦。
一样可经过设置server.xml配置文件来实现。
tomcat
< Connector port ="8080" maxHttpHeaderSize ="8192" maxThreads ="150" minSpareThreads ="25" maxSpareThreads ="75" enableLookups ="false" redirectPort ="8443" acceptCount ="100" connectionTimeout ="20000" disableUploadTimeout ="true" URIEncoding ="gb2312" /> 可是这样就应用到整个webapp中去了。 另: <% @page pageEncoding = " gb2312 " %> 此句是为了让jsp编译器能正确地解码含有中文字符的jsp页面。 其它方法还能够修改web.xml文件,配置一个过滤器。其原理都同样,只是换种方式而已。 有的书上专门写了一个函数来解决乱码,实际上对比一下就知道那种解决方法的好与坏。 回过头来一看,解决乱码也不过如此。 ok,实际就加上这3句搞定问题。 <% @page pageEncoding = " gb2312 " %> <% @ page contentType = " text/html;charset=gb2312 " %> <% request.setCharacterEncoding( " gb2312 " ); %>