当前位置: 代码迷 >> Java Web开发 >> JSP 超链接 中文 乱码怎么解决
  详细解决方案

JSP 超链接 中文 乱码怎么解决

热度:763   发布时间:2016-04-17 00:32:50.0
JSP 超链接 中文 乱码如何解决?
<a href="<%=request.getContextPath()%>/searchKey.do?method=search&curpage=${num}&key=${key} }"><c:out value="${num}"></c:out></a>

当key为汉字,比如香港的时候,传到后台为乱码??这个问题如何解决啊?

我在后台是这样取值的:
String key=request.getParameter("key");
我用key=new String(key.getBytes("ISO-8859-1"),"utf-8");转换了,也不行,还是乱码的。

------解决方案--------------------
我假设你第一个页面的编码是UTF-8的,并假设你的参数值未经过URLEncoder编码...

在取值的页面
加入 request.setCharsetEncoding("UTF-8")就可以了

后边的key=new String(key.getBytes("ISO-8859-1"),"utf-8");删除
------解决方案--------------------
在取值的页面 
加入 request.setCharsetEncoding("gb2312")就可以了 

后边的key=new String(key.getBytes("ISO-8859-1"),"utf-8");删除
------解决方案--------------------
看服务器
------解决方案--------------------
应用过滤类就行了

------解决方案--------------------
引用楼主 ocp_toad 的帖子:
<a href=" <%=request.getContextPath()%>/searchKey.do?method=search&curpage=${num}&key=${key} }"> <c:out value="${num}"> </c:out> </a>

当key为汉字,比如香港的时候,传到后台为乱码??这个问题如何解决啊?

我在后台是这样取值的:
String key=request.getParameter("key");
我用key=new String(key.getBytes("ISO-8859-1"),"utf-8");转换了,也不行,还是乱码的。

------解决方案--------------------
String s = java.net.URLEncoder.encode(str,"UTF-8");
System.out.println(s);
String str1 = java.net.URLDecoder.decode(s,"UTF-8");
lz这样试下吧
------解决方案--------------------
这个问题在这个版块每个月会出现 N 次!为什么都没有翻看历史帖子的习惯?
------解决方案--------------------
应该是GB2312吧
------解决方案--------------------
看清楚楼主的问题啊。
既然是超链接那提交的方式就是get。而不是post。
所以request.setCharsetEncoding("gb2312")是不行的。!
至于8楼说的java.net.URLEncoder.encode(str,"UTF-8")我以前用过好像是解决Cookie中文乱码问题的。
楼主的工程里有没有统一一个编码?像你最后说的那种方法其实是正确的啊。
------解决方案--------------------
用Filter过滤器就行了!
------解决方案--------------------
前台的编码是UTF-8么?
------解决方案--------------------
方法1:加META,提交自动为ISO-8859-1,一般后台都能认
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

方法2:onload="document.charset='utf-8'"
filter加上request.setCharsetEncoding("UTF-8")
------解决方案--------------------
还是建议使用过滤器
  相关解决方案