解决办法原因是:
使用java.net.URLEncoder.encode()可以对要传递的中文进行编码
a.在传参数之前先把参数进行转码:java.net.URLEncoder.encode(param);
取值时用语句java.net.URLDecoder.decode(param);再转回中文
例,设置cookie
代码如下 | 复制代码 |
<% String str = "这是中文的cookie值"; Cookie c = new Cookie("str",java.net.URLEncoder.encode(str)); c.setMaxAge(24*3600); //向客户端添加cookie对象 response.addCookie(c); %> |
接受cookie:
代码如下 | 复制代码 |
<% request.setCharacterEncoding("utf-8"); Cookie[] cookies = request.getCookies(); for(Cookie c : cookies) { //如果有名为str的cookie值,则是要需找的 if(c.getName().equals("str")) { out.print(java.net.URLDecoder.decode(c.getValue())); } } %> |
下面url值中文乱码也可中以这样操作
跳转页:
代码如下 | 复制代码 |
<a href=info.jsp?info="<%= java.net.URLEncoder.encode("中文汉字","GBK") %>">跳转</a> |
接收页
代码如下 | 复制代码 |
<% String info_str = new String(request.getParameter("info"),"ISO8859-1"); out.print(info_str); //输出接收值 %> |
时间: 2024-08-01 15:40:11