jsp中,超链接传值(中文)乱码
在jsp页面中通过超链接传值:<ahref=select.jsp?namesql=“中文"</a>传值,在用Stringnamesql=(String)request.g...
在jsp页面中通过超链接传值:<a href=select.jsp?namesql=“中文"</a>传值,在用String namesql=(String)request.getParameter("namesql");获取值得时候,出现乱码,怎样解决,急
展开
6个回答
展开全部
超链接提交数据,是以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
蔡君如
例子如下:
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
蔡君如
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<%@ 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的方式成功了.我也是新手,总结各位前辈的指点,总算弄成功了,希望能帮到新手,也谢谢前辈的指点.试过许多方法都行不通,但也不能说别人的方法不对,或许每个人情况不同.
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的方式成功了.我也是新手,总结各位前辈的指点,总算弄成功了,希望能帮到新手,也谢谢前辈的指点.试过许多方法都行不通,但也不能说别人的方法不对,或许每个人情况不同.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编码方式不一致就会出现这种问题,首先看一下你网页得编码方式,然后接取参数的时候用相应的编码。request有一个setParameterEncoding方法吧,先设置在接值。
或者你可以用万能转码,原理很简单把取到的parameter转为数组对象,然后通过String的构造器,重新构造一个字符串。大体就是new String(byte,“iso-8859-1”,“转出的编码比如utf-8”)
或者你可以用万能转码,原理很简单把取到的parameter转为数组对象,然后通过String的构造器,重新构造一个字符串。大体就是new String(byte,“iso-8859-1”,“转出的编码比如utf-8”)
更多追问追答
追问
本页面用了两种传值方式,一种是form,一种是超链接,用form传值的时候,request.getParameter("namesql");获取没问题,但是用超链接传值的时候,就出现乱码,
两种方式都是本页面传到本页面,如果用了setParameterEncoding,form传值会出现乱码
追答
你说的这个我也遇到过,万能转码是没问题的。你应该用了框架吧,据说是框架的问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在后台取值之前加上
request.setCharacterEncoding(“这里写你jsp里的encoding码");
request.setCharacterEncoding(“这里写你jsp里的encoding码");
追问
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
加了,没用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |