由SHTML格式的文件转向到一JSP页面,通过URL传值,汉字出现乱码。
原因:1.浏览器打开SHTML格式文件时,使用的编码格式为UTF-8。
2.JSP页面直接没有转码。
解决方案:1.使用request.getParameter("").getBytes("UTF-8")方式获取相应的值。
2.同时还要修改tomcat的配置文件:web.XML文件中在SSI服务配置处,增加:
<init-param>
<param-name>inputEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>outputEncoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
在server.xml文件中,Connector属性中增加:URIEncoding="UTF-8"
3.需要注意的是,如果SHTML格式的文件和JSP格式的文件隶属与同一个系统,部署在同一个服务器下,则需要将编码格式都统一为UTF-8。
几天的研究中,感觉就算你将SHTML格式文件的编码格式设置为GBK,浏览器解析时依旧使用UTF-8,传值时也是使用UTF-8。