我用的是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。不知道大家有没有听懂我的意思,希望大家多多帮忙啊!谢谢!

解决方案 »

  1.   

    建议楼主 在打印的时候将title的编码方式强制改成gb2312,再进行打印!
      

  2.   

    你可以依据我以下这几句话自己试验一下,应该可以解决问题!为了让JSP编译器能正确地解码我们的含有中文字符的JSP文件    
    <%@ page pageEncoding="gb2312"%>   
       
    保证JSP向客户端输出时是采用中文编码方式输出    
    <%@ page contentType="text/html;charset=GB2312"%>   
       
    为了让JSP能正确获得传入的参数    
    <%request.setCharacterEncoding("gb2312");%>   
       
    对于ACTION类中只要在最前面加上这句即可:    
    为了让JSP响应按照正确的编码格式    
    response.setContentType(”text/html; charset=gb2312″); 
      

  3.   

    谢谢了!我按照您的操作,但结果还是一样。我认为问题出在第二次通过超链接提交的时候,
    DynaActionForm接收的title有问题,因为我在TextAction中打印的时候就乱码了,不知道怎么弄啊?
    谁能帮帮我?!
      

  4.   

    http://topic.csdn.net/u/20081205/13/c00edcf9-cc46-43eb-b2cf-96adb0c99f24.html不知道这个对楼主有没有帮助
      

  5.   

    谢谢大家!问题解决了,只要在tomcat安装目录下的conf文件夹中的server.xml 中增加URIEncoding="gb2312"就行了。
    这个问题的关键就是url中文传值问题。