码迷,mamicode.com
首页 > 编程语言 > 详细

Control character in cookie value, consider BASE64 encoding your value , java操作cookie遇到中文会报错的解决方案

时间:2014-07-18 18:31:32      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:java   数据   问题   代码   c   数据库   

项目当中用到cookie保存中文,但是会报如下错误:

Control character in cookie value, consider BASE64 encoding your value

 大概意思是保存到cookie当中的值存在控制字符,无法保存。但实际上数据是不存在这种问题的。再看后面的那句话,好像是将要保存的值进行了base64编码,可能是因为中文在编码时出现乱码导致一些控制字符的出现。看来setCookie方法不支持保存中文(GBK)编码的样子。

 解决方案:将要保存的值进行URLEncoder.encode(value,"utf-8")编码。

在提取时,同样进行解码:

 URLDecoder.decode(c.getValue(),"UTF-8");

 

PS.同样的代码,我在另外一个项目中却没有报错,检查后发现,原来我另外一个项目的数据库保存的格式就是UTF-8,所以取出来就可以直接用了,而报错的这个则是用的GBK编码。看来在JAVA开发中,能用UTF-8的话还是用UTF-8比较好,一定要用中文(GBK)的话,千万要当心中文乱码的编码问题。

经验:能用UTG-8编码的尽量别用GBK中文格式。能用英文的不要用中文保存数据。

Control character in cookie value, consider BASE64 encoding your value , java操作cookie遇到中文会报错的解决方案,布布扣,bubuko.com

Control character in cookie value, consider BASE64 encoding your value , java操作cookie遇到中文会报错的解决方案

标签:java   数据   问题   代码   c   数据库   

原文地址:http://www.cnblogs.com/xujanus/p/3853435.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!