<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;
}
页面上出现的数据还是乱码,  纠结死了。

解决方案 »

  1.   

    list=new String(list.getBytes("ISO8859-1"),"utf-8");
      

  2.   

    这个问题应该是浏览器的编码不符产生,修改浏览器的编码为utf-8。
      

  3.   


    list.getBytes没有找到这个方法?
      

  4.   

    JSP文件的编码格式设置成UTF-8
      

  5.   

    哦,看错了,以为list是string类型的了。意思是转换下,list的编码应该是iso8859-1,debug看下那里开始乱码的。
      

  6.   


    在perAction里面的list还没出现乱码。
    存进session里边,到jsp页面输出的时候就乱码了。
      

  7.   

    <s:iterator var="per" value="#session.perList">         
       <s:property value="#per.Name"/>
    </s:iterator>这个写在jsp页面的body里面输出是正常的。
    但是写在javascript的标签里就会输出乱码。
      

  8.   


    用了, 但是jsp页面输出还是乱码。所以现在可以肯定在Action里面的时候还不是乱码。
    一到jsp页面的javascript里面输出就乱码了。
      

  9.   

    关于页面转码问题,个人有小结,希望可以给你帮助:
     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>
     以上是个人学习时的总结,有不对的可以指出,嘻嘻!
      

  10.   

    你可以把name在action里面打印打控制台看看是不是乱码,
      

  11.   


    我配置了你的字符集过滤。 问题还是没有解决。我的问题很怪异。  同一个jsp页面  直接输出在页面上没乱码, 但是通过javascript来输出就乱码了。
      

  12.   


    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;
    }
      

  13.   

    在引用javascript的那里,也要指定字符集的。
    <script type="text/javascript" charset="utf-8" src=....
      

  14.   


    javascript里面乱码?你把javascript里的代码贴出来看看,用的xmlHttpRequest对象?
      

  15.   


    public String findAll(){
    HttpServletRequest request = ServletActionContext.getRequest();
                    HttpServletRequest response = ServletActionContext.getResponse()
                    response.setContentType("text/html;charset=UTF-8");//这个放在前面。
    response.setCharacterEncoding("UTF-8");
                    request.setCharacterEncoding("UTF-8");
    List list = perdao.findAll();
    HttpSession sess = request.getSession(true);
    sess.setAttribute("perList", list);
    return SUCCESS;
    }
    我之前也遇到过这样的问题,其它只要四个地方编码设置一致后,基本上不会出现乱码。
    1、jsp页面设置
    2、javascript引用设置编码
    3、java中的resquest、response设置编码
    4、数据库编码
    只要这四个地方的编码一致,应该是不会出问题。
    不过有一次,我这样设置后,也出现乱码了,后来发现把response.setContentType("text/html;charset=UTF-8")这个写在前面,后面再加上response.setCharacterEncoding("UTF-8")后问题解决。
      

  16.   

    更正一下,上面的HttpServletRequest response = ServletActionContext.getResponse()
     应该是HttpServletResponse
      

  17.   


    没有用xmlHttpRequest对象。
    $(document).ready(function() {
        //输出的内容。
    });
    就这个。
      

  18.   

    在tomcat--conf--server.xml 里找到<Connector Port="8080" 后面加上URIEncoding="UTF-8" /> 
      

  19.   

    还有一个办法,你试试:
    在页面<%@ page language="java" pageEncoding="UTF-8"%>下面直接使用java代码试试,比如:
    <%
    String taskid = request.getParameter("taskid");
    %>在函数里$(document).ready(function() {
        alert(<%=taskid%>);
     });我没有出现过你这样的情况,看这个能不能有效果
      

  20.   


    <SCRIPT type="text/javascript" charset="UTF-8">
        <s:iterator var="per" value="#session.perList">
            <s:property value="#per.Name"/><span style="color: rgb(255, 0, 0);">这里的值一直是乱码</span>     </s:iterator>
    </SCRIPT>你这个是后台传到前台的中文数据是乱码还是你直接在jsp中写的中文是乱码?
    如果你是在jsp中写的中文是乱码的话,建议你重新建一个页面,然后把内容拷贝过来看看。最好中文的地方手工输入一下。
      

  21.   


    后台传到前台的中文数据不是乱码, 但是一到JSP页面给输出来  就是乱码了。
    如果直接写死,中文, 也不是乱码。
      

  22.   

    如果你确定你的页面的编码与后台的编码一样的话,那建议你把项目clear后,再解除项目的部署,然后再重新部署看看。
      

  23.   


    我发现很奇怪的一件事,就是其他页面用
    (1)s:iterator输出, 查看源代码的时候,都是乱码,但是显示在页面上又是正确的中文。
    然后一些写死的中文,查看源代码之后,就不是乱码。
    (2)我现在的这个页面如果s:iterator不是在javascript里面输出,而是在body里面直接输出,查看源代码依旧是乱码,但是页面上显示出来的又是正确的中文形式!
      

  24.   

    通过上面的测试,我觉得应该是:
    (1) 如果直接输出在body里面,jsp页面把s:iterator输出的乱码转成了正常显示的中文。
    (2) 而在javascript里面来用s:iterator输出的话,jsp页面就直接显示了乱码,没有转换就显示出来了,所以就是乱码。不知道是不是这样。但是就算是这样,我也不知道肿么办啊!
      

  25.   

    先在你的Action里看看数据装进去有没是乱码。
    如果不是乱码 在考虑过滤器 跟JSP的问题