黑马程序员技术交流社区

标题: jsp页面超链接传递数值出现乱码吗 [打印本页]

作者: 杨增坤    时间: 2013-6-12 22:02
标题: jsp页面超链接传递数值出现乱码吗
index.jsp<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<body>       
        <%
        request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
         %>
         <a href="index1.jsp?c=<%="大家好" %>">点击此处提交数据</a>
        </body>



index1.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<body>


  <%
        request.setCharacterEncoding("utf-8");
                response.setCharacterEncoding("utf-8");
                String s=request.getParameter("c");
                out.println("--"+s+"--");
   %>
  </body>


发布结果是:


1.png (40.67 KB, 下载次数: 0)

这是index.jsp页面的显示

这是index.jsp页面的显示

2.png (41.04 KB, 下载次数: 0)

这是index1.jsp页面的显示

这是index1.jsp页面的显示

作者: Heart    时间: 2013-6-13 17:37
<%
         request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        String s=request.getParameter("c");
        out.println("--"+s+"--");
    %>
出现乱码问题是因为:resquest获取参数时没有转码,request获取参数默认使用的是 服务器默认的编码格式,也就是ISO-8859-1,
要解此乱码问题:获取参数时转换下编码格式就可以了,方法如下:

String s = request.getParameter("c");
s = new String(s.getBytes("ISO8859-1"), "UTF-8");

作者: 杨增坤    时间: 2013-6-13 22:13
Heart 发表于 2013-6-13 17:37
出现乱码问题是因为:resquest获取参数时没有转码,request获取参数默认使用的是 服务器默认的编码格式, ...

谢谢了!真的谢谢了!
作者: 杨增坤    时间: 2013-6-13 22:13
已经解决,谢谢大家的回帖!
作者: Heart    时间: 2013-6-13 22:34
这么快就解决了,还没看见技术分呢{:soso_e141:}
作者: 杨增坤    时间: 2013-6-13 23:14
Heart 发表于 2013-6-13 22:34
这么快就解决了,还没看见技术分呢

好吧 我回复的快了!希望给加技术分!
作者: 孙百鑫    时间: 2013-6-14 04:47
楼主.如果发表主题之后并且帖子问 的技术性问题高的话.没有加分.可以私密我们版主哦~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2