最近对JSP&Servlert的原理很感兴趣,所以今天花时间看了一下;无奈在一个编码问题上困扰很久
这是我的解决思路:
(1)检查网页(html/jsp)页面的编码;
(2)检查服务器端的处理编码的方式【包括:服务器response/request的编码设置;Tomcat的编码处理方式】
(3)检查数据库的编码【实际上本例中并没有用到,不过正式项目中我们也要考虑这个问题】
我的建议是:所有涉及到编码的地方,整个项目从一开始就要统一,调试编码问题是很麻烦和很不值得的。
对于Post和Get方式的选择,我一般倾向于选择Post;不过这不是绝对的,Get肯定有它有用的地方:比方说性能要好些
最后我这个问题是这么解决:
(1)Tomcat中server.xml中,红色为新加设置
<Connector
URIEncoding="UTF-8"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
(2)服务器代码处理编码设置
response.setCharacterEncoding("UTF-8");
(3)html页面
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
参考资料:JSP中Get中文乱码;JSP中文乱码解决方式