有关jsp表单post方法的中文问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:56:25
自己尝试解决的步骤(项目已经部署完成):
1、把tomcat的样例过滤器filter.SetCharacterEncodingFilter.class复制到WEB-INF/classes/filters文件夹下,并在web.xml文件中配置
2、把表单所在jsp页面的charset值更改为"GBK"(其实与表单提交并没有太大联系,这一步我认为只是处理当前页面的中文显示问题);
3、在接收表单的servlet的doPost方法第一行加入request.setCharacterEncoding("GBK");
完毕。

按照这样的步骤操作后,一度解决了中文问题。但是不知道怎么回事,我把项目重新导入eclipse后(已经按照上述步骤做了修改),中文问题有出现了,由于文件都已经修改过,我都不知道还能做一些什么。我就只好硬着头皮重新改成UTF-8,再改过来,这样反复地折腾了几次,突然又好了,我也说不清原因,对照一下改前的文件,几乎没有区别。想请教一下大家,导致post中文问题的还没有没其它的原因?要是可能的话,最好能帮我解释一下我遇到的这种情况是怎么产生的。我现在都不敢重新部署了!
谢谢

针对你的问题我回答一下.
你使用了3条方案,思路是正确的.
但要注意两点:
1,2,3条不能同时使用

其中第2条是必须的.
也就是说你使用1,2条或者使用2,3条.
但使用2,3条的话必须添加一条语句,response.set...("GBK"),单词记不清楚了,你在编译器中一点就出来了,作用是设置response的编码为GBK,记得处理异常.

还有Tomcat的文件不能随便更改,否则也可能出现中文乱码.

基本上就这些了,用structs的话还有要注意的,不过不在本问题讨论的范围了.

<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>GBK</page-encoding>
<include-prelude>/header.jsp</include-prelude>
<include-coda>/footer.jsp</include-coda>
</jsp-property-group>
</jsp-config>
我一般用xml处理中文问题,感觉很好用列