今天遇到一个现象:程序一样,在不同的浏览器中看到的结果不一样,在 360浏览器和IE8中能读出数据而且能正常显示,后台也没有报错,而在IE6中就有问题,后台报错,检查了一下,是在IE6中URL中文传参出现了乱码?然后检查了一下,感觉编码一致,都采用的是UTF-8,而且tomcat也配置了,应该不会有问题呀,
在网上一查原来:utf-8编码在IE6下显示乱码问题,具体体现是通过URL传参后,如果参数是中文字符且中文字符数为基数时,最后一个字符就会出现乱码,这主要是由于IE6不能完全支持UTF-8编码造成的,这种状况没有根本的解决办法。
解决办法:
Java code< a href="test.jsp?action=<%=java.net.URLEncoder.encode("星期二","UTF-8")%>">
Java code<%@page contentType="text/html;charset=UTF-8"%>
<%
request.seCharacterEncoding ("utf-8");
String queryValue = request.getParameter("queryValue");
%>
如果用的是SSH的话,需要在URL中传中文的话,我的设置如下:
所有的页面编码采用UTF-8,request、response采用UTF-8
数据库(mysql)的编码采用UTF-8
服务器(tomcat)中server.xml的配置中设置URIEncoding="UTF-8"
我的中文乱码就解决了~(怎么感觉有点不靠谱呢,但是事实就是解决了~)