日期:2014-05-17  浏览次数:20597 次

request传值乱码!
     //Servlet请求数据      
     response.setContentType("text/html;charset=UTF-8");
     PrintWriter out = response.getWriter();   
     //request.setCharacterEncoding("UTF-8");试了没用
     request.setAttribute("qxs", this.getTblQxBizDao().getTblQx());
     request.getRequestDispatcher("management/Test.jsp").forward(request, response);

     //JSP页面获值出现乱码,全部是??
     <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     .......
     <select>
       <c:forEach var="qx" items="${qxs}" >
          <option>${qx.qx}</option>
       </c:forEach>
     </select>

    在线等待,麻烦各位老鸟帮忙解决一下!
     
------最佳解决方案--------------------
楼主,你首先得在Servlet中将从Dao中获取的字符串显示出来看看是否已经是乱码了。

另外,用Attribute传的值和request.setCharactorEncoding无关的,后者只对Parameter起作用。
------其他解决方案--------------------
引用:
楼主,你首先得在Servlet中将从Dao中获取的字符串显示出来看看是否已经是乱码了。

另外,用Attribute传的值和request.setCharactorEncoding无关的,后者只对Parameter起作用。


非常感谢,这个问题已经解决!我在doGet()方法里面调用了doPost();代码是写在doPost里面的,我把doGet()方法里面的PrintWriter out = response.getWriter();删了就好了,搞不清楚这句代码和中文乱码有什么关系?  希望大哥你能帮我解释一下!
------其他解决方案--------------------
哦,getWriter调用的时候,会设默认的charset。后面的设置就没有用了。
------其他解决方案--------------------
引用:
哦,getWriter调用的时候,会设默认的charset。后面的设置就没有用了。
嗯!