日期:2014-05-18  浏览次数:20594 次

请教大家一个编码问题
我用的是struts,jsp页面中的表单有一个标题title:在<input type=text name="title">中输入中文,
然后由DynaActionForm接收,在TestAction中调用DAO层的方法从数据库查询包含该标题的记录,然后跳转到另一个jsp页面,
显示查询到的所有记录。分页显示,比如第i页:<a href="TestAction.do?title=<%=title> (后面一个title是从
TestAction中用session传过来的),再提交给TestAction处理。
但是问题出来了:第一次也就是表单提交的时候,结果一切正常。但是第二次的时候,我做了一下测试,
超链接中<a href="TestAction.do?title=<%=title>的后一个title能正确显示中文,但是提交后,在
TestAction和DAO层中打印出的title的内容是????,也就是title不是中文了,这到底是怎么回事啊?
我jsp页面设置的全是gb2312。不知道大家有没有听懂我的意思,希望大家多多帮忙啊!谢谢!

------解决方案--------------------
我今天上课学了过滤类,不知是不是说这个的啊
------解决方案--------------------
建议楼主 在打印的时候将title的编码方式强制改成gb2312,再进行打印!
------解决方案--------------------
你可以依据我以下这几句话自己试验一下,应该可以解决问题!

为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件
<%@ page pageEncoding="gb2312"%>
 
保证JSP向客户端输出时是采用中文编码方式输出
<%@ page contentType="text/html;charset=GB2312"%>
 
为了让JSP能正确获得传入的参数
<%request.setCharacterEncoding("gb2312");%>
 
对于ACTION类中只要在最前面加上这句即可:
为了让JSP响应按照正确的编码格式
response.setContentType(”text/html; charset=gb2312″);
------解决方案--------------------
http://topic.csdn.net/u/20081205/13/c00edcf9-cc46-43eb-b2cf-96adb0c99f24.html

不知道这个对楼主有没有帮助