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

jsp页面的中文乱码问题。

<SCRIPT type="text/javascript" charset="UTF-8">
    <s:iterator var="per" value="#session.perList">
        <s:property value="#per.Name"/>这里的值一直是乱码     </s:iterator>
</SCRIPT>


jsp页面的<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

perAction的方法里面也写了

public String findAll(){
HttpServletRequest request = ServletActionContext.getRequest();
ServletActionContext.getResponse().setCharacterEncoding("UTF-8");
ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
List list = perdao.findAll();
HttpSession sess = request.getSession();
sess.setAttribute("perList", list);
return SUCCESS;
}


页面上出现的数据还是乱码,  纠结死了。

------解决方案--------------------
JSP文件的编码格式设置成UTF-8
------解决方案--------------------
哦,看错了,以为list是string类型的了。意思是转换下,list的编码应该是iso8859-1,debug看下那里开始乱码的。
------解决方案--------------------
 写中文过滤器了没。。过滤器编码 页面编码一致  应该不会出现乱码。。
------解决方案--------------------
关于页面转码问题,个人有小结,希望可以给你帮助:
 1.页面都改成UTF-8格式
 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 2.如果页面时使用get提交方式:则使用request.setCharacterEncoding("utf-8");
 3.如果是post提交方式:则使用字符创强转:String name = new String(request.getParameter("参数").getBytes("iso-8859-1"),"utf-8");
 4.在web.xml文件里配置字符集过滤器(此方法只对post提交方式有作用)
 <!-- 字符集过滤 -->
  <filter>
  <filter-name>encodingFilter</filter-name>
  <filter-class>
  org.springframework.web.filter.CharacterEncodingFilter
  </filter-class>
  <init-param>
  <param-name>encoding</param-name>
  <param-value>UTF-8</param-value>
  </init-param>
  <init-param>
  <param-name>forceEncoding</param-name>
  <param-value>false</param-value>
  </init-param> 
 </filter>
  <filter-mapping>
  <filter-name>encodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
 以上是个人学习时的总结,有不对的可以指出,嘻嘻!
------解决方案--------------------
你可以把name在action里面打印打控制台看看是不是乱码,
------解决方案--------------------

public String findAll(){
HttpServletRequest request = ServletActionContext.getRequest();
ServletActionContext.getResponse().setCharacterEncoding("UTF-8");
                request.setCharacterEncoding("UTF-8");//加上这一句就行了 ServletActionContext.getResponse().setContentType("text/html;charset=UTF-8");
List list = perdao.findAll();
HttpSession sess = request.getSession();
sess.setAttribute("perList", list);
return SUCCESS;