jsp cookie存入中文值乱码解决办法

解决办法原因是:

使用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

jsp cookie存入中文值乱码解决办法的相关文章

FlashFXP连接站点中文显示乱码解决办法

FlashFXP连接远程ftp时虽然不会影响到我们正常使用了,但是看起来也是非常的不爽的,于是就想办法来解决了了,我们知道只要是乱码就会有编码问题了,所以我觉得这个也是编码问题,我检查之后发现原因就是这些字符是utf-8编码,而windows下文件名是GBK编码.   FlashFXP中文显示乱码 现在我们在flashfxp中点击"选项->参数设" 但是没有找到,后来百度后找到解决办法,具体如下. 解决办法 打开:站点->站点管理器,选择相应的站点,然后选择高级选项,这里面

Ubuntu Server 10.04中文环境乱码解决办法

用vim配置语言环境变量  代码如下 复制代码 vim /etc/environment 改成:  代码如下 复制代码 LANG="en_US.UTF-8″ LANGUAGE="en_US:en" sudo vim /var/lib/locales/supported.d/local 改成  代码如下 复制代码 en_US.UTF-8 UTF-8 保存后,执行命令:  代码如下 复制代码 sudo locale-gen sudo vim /etc/default/locale

php中json_encode中文字符乱码解决办法

一.json_encode() 这个是一个对变量进行 JSON 编码常用的函数,但是当文本的格式不是utf-8时,中文的转码会出现一些问题,比如文本为gb2312的时候 示例  代码如下 复制代码 <?php $jsonText = array (  0 => array (   'id' => '1',   'name' => '文本1'  ),  1 => array (   'id' => '2',   'name' => '文本2'   ) ) ;   e

vim中文出现乱码解决办法

vim乱码解决方法: 只想改当前文件的编码方式的话,只需要在命令模式下输入:  代码如下 复制代码 :set encoding=utf-8 :set fileencoding=utf-8 在根目录下新建一个.vimrc文件,在里面写上  代码如下 复制代码 let &termencoding=&encoding set fileencodings=utf-8,gbk,ucs-bom,cp936 或者找到文件.vimrc后,将下面代码加入即可: """"

Mac os的压缩zip文件在windows系统下打开中文文件名乱码解决办法

从mac下压缩的文件通过邮件发送过来,在windows下打开后发现乱码,和里面对应的文件夹的文件目录也发生变化 实际问题就是文件编码的问题 mac 下默认是UTF-8 而已,windows下默认是GBK 解决办法: 1.改变文件名为xx.zip 为xx.rar 2.用新版WinRAR(5.0) 以上版本直接解压即可 注: 1.用的2345好压 直接解压不能解决此文件, 2. 可以通过设置2345好压 的代码页 为UTF-8 来解压即可 (预览的时候还是乱码),不过解压出来就都正常了

phpword中文字符乱码解决办法

最近领导要求用php生成word,网上找了很多类啊,函数啊.最终相中phpword.无奈不是国人开发,对中文支持很不友好.经过研究,终于解决了中文乱码,分享出来. 1.用模板word生成word中文乱码解决方案: 打开phpword/Template.php文件,找到$replace = utf8_encode($replace);将其改为$replace =iconv('gbk', 'utf-8', $replace); 即可. 2.直接生成word文档,调用addText对象时中文乱码解决方

Js Url传中文参数乱码解决办法

解决方法如下:   1.在JS里对中文参数进行两次转码  代码如下 复制代码 var login_name = document.getElementById("loginname").value; login_name = encodeURI(login_name); login_name = encodeURI(login_name); 2.在服务器端对参数进行解码  代码如下 复制代码 String loginName = ParamUtil.getString(request,

ajax如何传中文参数乱码解决办法

传递中文参数,然后修改数据库教程的.  代码如下 复制代码 <script> var url="admin/ajaxmodify.php?"+key+"=";  url+=encodeuricomponent(encodeuricomponent(value));   xmlhttp.open("get",url,true);   xmlhttp.send(null); </script> 参数是中文encodeurico

关于cookie中文乱码解决办法

关于cookie中文乱码解决办法 后台: 存值 (使用 HttpUtility.UrlEncode 进行编码) Response.Cookies("ABC").Value = HttpUtility.UrlEncode("ABC") 取值 (使用 HttpUtility.UrlDecode 进行解码) Str = HttpUtility.UrlDecode(Request.Cookies("ABC").Value) 和JS进行交互: 在用js生成