jsp中,超链接传值(中文)乱码

在jsp页面中通过超链接传值:<ahref=select.jsp?namesql=“中文"</a>传值,在用Stringnamesql=(String)request.g... 在jsp页面中通过超链接传值:<a href=select.jsp?namesql=“中文"</a>传值,在用String namesql=(String)request.getParameter("namesql");获取值得时候,出现乱码,怎样解决,急 展开
 我来答
yujmh
2013-06-22 · TA获得超过772个赞
知道小有建树答主
回答量:427
采纳率:33%
帮助的人:322万
展开全部

超链接提交数据,是以get方式提交的

 加入 以下代码是无效的,它是用来解决post方式的乱码问题
  request.setCharacterEncoding("UTF-8");
     response.setCharacterEncoding("UTF-8");

而解决get方式乱码,最方便的方法是在tomcat文件中的server.xml文件进行配置

配置 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf-8" />

有两个Connector结点,只能在一个Connector中加,好像是第一个,不行的话再加另外一个,配置时需注意,配置成功过后,需先关闭tomcat,然后重启tomcat

千锋教育
2015-12-14 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
jsp中传中文一定要经过url编码的,否则就是乱码。
例子如下:
String string = "蔡君如";
String eStr = URLEncoder.encode(string, "utf-8");
System.out.println(eStr);
System.out.println(URLDecoder.decode(eStr, "utf-8"));

输出:
%E8%94%A1%E5%90%9B%E5%A6%82
蔡君如
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ooO兵临城下Ooo
2021-03-16
知道答主
回答量:1
采纳率:0%
帮助的人:512
展开全部
<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK" %>

<%
String str2 = "张季清";
String str = java.net.URLEncoder.encode(str2, "GBK");
System.out.println(str);
System.out.println(java.net.URLDecoder.decode(str, "GBK"));
%>
<a href = "shiyan.jsp?name=<%=str%>" target=_blank>链接</a>
<%=str%>

以上是第1页面a.jsp 以下是第2页面shiyan.jsp

<%@ page language="java" contentType="text/html; charset=GBK"
pageEncoding="GBK" %>

<%
String user = request.getParameter("name");
System.out.println(user);
user = java.net.URLDecoder.decode(user, "GBK");
%>

<body>
<%=user%>
</body>
说明: 用java的方式成功了.我也是新手,总结各位前辈的指点,总算弄成功了,希望能帮到新手,也谢谢前辈的指点.试过许多方法都行不通,但也不能说别人的方法不对,或许每个人情况不同.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Lee小店
2013-06-22 · TA获得超过1265个赞
知道小有建树答主
回答量:767
采纳率:0%
帮助的人:368万
展开全部
编码方式不一致就会出现这种问题,首先看一下你网页得编码方式,然后接取参数的时候用相应的编码。request有一个setParameterEncoding方法吧,先设置在接值。
或者你可以用万能转码,原理很简单把取到的parameter转为数组对象,然后通过String的构造器,重新构造一个字符串。大体就是new String(byte,“iso-8859-1”,“转出的编码比如utf-8”)
更多追问追答
追问
本页面用了两种传值方式,一种是form,一种是超链接,用form传值的时候,request.getParameter("namesql");获取没问题,但是用超链接传值的时候,就出现乱码,
两种方式都是本页面传到本页面,如果用了setParameterEncoding,form传值会出现乱码
追答
你说的这个我也遇到过,万能转码是没问题的。你应该用了框架吧,据说是框架的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
逍遥云鹤传
2013-06-22 · TA获得超过182个赞
知道答主
回答量:59
采纳率:0%
帮助的人:20.3万
展开全部
在后台取值之前加上
request.setCharacterEncoding(“这里写你jsp里的encoding码");
追问
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
加了,没用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式