jsp页面的中文乱码问题。

小脩 2013-01-21 09:46:01

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


页面上出现的数据还是乱码, 纠结死了。
...全文
2895 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzsunlight 2013-01-22
  • 打赏
  • 举报
回复
先在你的Action里看看数据装进去有没是乱码。 如果不是乱码 在考虑过滤器 跟JSP的问题
小脩 2013-01-21
  • 打赏
  • 举报
回复
引用 10 楼 cxw3152 的回复:
写中文过滤器了没。。过滤器编码 页面编码一致 应该不会出现乱码。。
用了, 但是jsp页面输出还是乱码。 所以现在可以肯定在Action里面的时候还不是乱码。 一到jsp页面的javascript里面输出就乱码了。
cxw3152 2013-01-21
  • 打赏
  • 举报
回复
写中文过滤器了没。。过滤器编码 页面编码一致 应该不会出现乱码。。
小脩 2013-01-21
  • 打赏
  • 举报
回复
<s:iterator var="per" value="#session.perList"> <s:property value="#per.Name"/> </s:iterator> 这个写在jsp页面的body里面输出是正常的。 但是写在javascript的标签里就会输出乱码。
小脩 2013-01-21
  • 打赏
  • 举报
回复
引用 6 楼 fangmingshijie 的回复:
哦,看错了,以为list是string类型的了。意思是转换下,list的编码应该是iso8859-1,debug看下那里开始乱码的。
在perAction里面的list还没出现乱码。 存进session里边,到jsp页面输出的时候就乱码了。
王者_来归 2013-01-21
  • 打赏
  • 举报
回复
没有遇到过这种问题,肯定是哪一个地方出了状况。
小脩 2013-01-21
  • 打赏
  • 举报
回复
引用 2 楼 h932075062 的回复:
这个问题应该是浏览器的编码不符产生,修改浏览器的编码为utf-8。
我IE的编码格式也是UTF-8
  • 打赏
  • 举报
回复
哦,看错了,以为list是string类型的了。意思是转换下,list的编码应该是iso8859-1,debug看下那里开始乱码的。
黑夜里的黑猫 2013-01-21
  • 打赏
  • 举报
回复
JSP文件的编码格式设置成UTF-8
小脩 2013-01-21
  • 打赏
  • 举报
回复
引用 3 楼 lxk1201 的回复:
引用 1 楼 fangmingshijie 的回复: list=new String(list.getBytes("ISO8859-1"),"utf-8"); list.getBytes没有找到这个方法?
list指的是什么?
小脩 2013-01-21
  • 打赏
  • 举报
回复
引用 1 楼 fangmingshijie 的回复:
list=new String(list.getBytes("ISO8859-1"),"utf-8");
list.getBytes没有找到这个方法?
微风飘过 2013-01-21
  • 打赏
  • 举报
回复
这个问题应该是浏览器的编码不符产生,修改浏览器的编码为utf-8。
  • 打赏
  • 举报
回复
list=new String(list.getBytes("ISO8859-1"),"utf-8");
小脩 2013-01-21
  • 打赏
  • 举报
回复
通过上面的测试,我觉得应该是: (1) 如果直接输出在body里面,jsp页面把s:iterator输出的乱码转成了正常显示的中文。 (2) 而在javascript里面来用s:iterator输出的话,jsp页面就直接显示了乱码,没有转换就显示出来了,所以就是乱码。 不知道是不是这样。 但是就算是这样,我也不知道肿么办啊!
小脩 2013-01-21
  • 打赏
  • 举报
回复
引用 30 楼 sen_linzhiwang 的回复:
如果你确定你的页面的编码与后台的编码一样的话,那建议你把项目clear后,再解除项目的部署,然后再重新部署看看。
我发现很奇怪的一件事,就是其他页面用 (1)s:iterator输出, 查看源代码的时候,都是乱码,但是显示在页面上又是正确的中文。 然后一些写死的中文,查看源代码之后,就不是乱码。 (2)我现在的这个页面如果s:iterator不是在javascript里面输出,而是在body里面直接输出,查看源代码依旧是乱码,但是页面上显示出来的又是正确的中文形式!
王者_来归 2013-01-21
  • 打赏
  • 举报
回复
如果你确定你的页面的编码与后台的编码一样的话,那建议你把项目clear后,再解除项目的部署,然后再重新部署看看。
小脩 2013-01-21
  • 打赏
  • 举报
回复
引用 28 楼 sen_linzhiwang 的回复:
<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> <……
后台传到前台的中文数据不是乱码, 但是一到JSP页面给输出来 就是乱码了。 如果直接写死,中文, 也不是乱码。
王者_来归 2013-01-21
  • 打赏
  • 举报
回复
<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中写的中文是乱码的话,建议你重新建一个页面,然后把内容拷贝过来看看。最好中文的地方手工输入一下。
  • 打赏
  • 举报
回复
引用 24 楼 lxk1201 的回复:
引用 20 楼 wenguohua_123 的回复:javascript里面乱码?你把javascript里的代码贴出来看看,用的xmlHttpRequest对象? 没有用xmlHttpRequest对象。 $(document).ready(function() { //输出的内容。 }); 就这个。
还有一个办法,你试试: 在页面<%@ page language="java" pageEncoding="UTF-8"%>下面直接使用java代码试试,比如: <% String taskid = request.getParameter("taskid"); %> 在函数里$(document).ready(function() { alert(<%=taskid%>); }); 我没有出现过你这样的情况,看这个能不能有效果。。。
告白气球 2013-01-21
  • 打赏
  • 举报
回复
在tomcat--conf--server.xml 里找到<Connector Port="8080" 后面加上URIEncoding="UTF-8" />
加载更多回复(14)

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧