日期:2014-05-16  浏览次数:20405 次

jsp中文乱码终极解决方法

?

let's?go。
一?找出问题的根源
???乱码可能出现的地方:1?jsp页面中?
???????????????????????2?jsp页面之间相互传参的参数
???????????????????????3?与数据库中数据的存取
???基本归纳为以上几种。

二?寻找解决方案
???1?出现在jsp页面中,是由于没有设置jsp页面的中文字符编码。
???2?出现在jsp页面之间相互传参,是由于参数没有设置正确的字符编码。
???3?以上2个问题解决了,那么存到数据库中,自然就不存在乱码。除非你对存入到数据库里的数据再次进行编码。

?

三解决方法:
1的解决方法?
<% @?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配置文件来实现。
< Connector
port ="8080" ???????????????maxHttpHeaderSize ="8192"
???????????????maxThreads
="150" ?minSpareThreads ="25" ?maxSpareThreads ="75"
???????????????enableLookups
="false" ?redirectPort ="8443" ?acceptCount ="100"
???????????????connectionTimeout
="20000" ?disableUploadTimeout ="true" ? URIEncoding ="gb2312"