Control character in cookie value, consider BASE64 encoding your value-Cookie保存中文出错[转]
项目当中用到cookie保存中文,但是会报如下错误:
Control character in cookie value, consider BASE64 encoding your value
大概意思是保存到cookie当中的值存在控制字符,无法保存。但实际上数据是不存在这种问题的。再看后面的那句话,好像是将要保存的值进行了base64编码,可能是因为中文在编码时出现乱码导致一些控制字符的出现。
解决方案:将要保存的值进行URLEncoder.encode(value,"utf-8")编码。
在提取时,同样进行解码:
- /**
- * 添加一个cookie值
- * @param name 名称
- * @param value 值
- * @param time cookie的有效期
- * @param response 保存cookie的对象
- */
- public static void setCookie(String name, String value, Integer time,HttpServletResponse response) {
- try {
- //关键点
- value = URLEncoder.encode(value,"UTF-8");
- } catch (UnsupportedEncodingException e) { }
- Cookie cookie = new Cookie(name, value);
- cookie.setPath("/");
- cookie.setMaxAge(time);
- response.addCookie(cookie);
- }
- /**
- * 根据name值,从cookie当中取值
- *
- * @param name 要获取的name
- * @param request cookie存在的对象
- * @return 与name对应的cookie值
- */
- public static String getCookie(String name, HttpServletRequest request) {
- Cookie[] cs = request.getCookies();
- String value = "";
- if (cs != null) {
- for (Cookie c : cs) {
- if (name.equals(c.getName())) {
- try {
- //关键点
- value = URLDecoder.decode(c.getValue(),"UTF-8");
- } catch (UnsupportedEncodingException e) {
- }
- return value;
- }
- }
- }
- return value;
- }
转自:http://amcucn.javaeye.com/blog/403857
Control character in cookie value, consider BASE64 encoding your value-Cookie保存中文出错[转]的更多相关文章
- Control character in cookie value, consider BASE64 encoding your value , java操作cookie遇到中文会报错的解决方案
项目当中用到cookie保存中文,但是会报如下错误: Control character in cookie value, consider BASE64 encoding your value 大概 ...
- 使用Cookie报错Control character in cookie value, consider BASE64 encoding your value
参考资料: http://www.blogjava.net/persister/archive/2009/10/02/297103.html http://blog.csdn.net/xiaozhen ...
- Control character in cookie value, consider BASE64 encoding your value
这是因为你给Cookie设置了中文的value,比如Cookie c = new Cookie("user", "张三");
- Cookie存储中文报错:java.lang.IllegalArgumentException: Control character in cookie value or attribute.(转)
项目中做自动登录和保存密码时,Cookie报错Java.lang.IllegalArgumentException,上google查了下 在http://hi.baidu.com/xtxycy/blo ...
- Cookie不能保存中文解决方式
在用cookie保存username的时候,发现cookie值不能存中文,报例如以下错: Control character in cookie value, consider BASE64 e ...
- tomcat使用cookies缓存的时候中文报错解决办法 java.lang.IllegalArgumentException: Control character in cookie value or attribute.
报错出现 java.lang.IllegalArgumentException: Control character in cookie value or attribute. at org.apac ...
- cookie遇到java.lang.IllegalArgumentException: Control character in cookie value or attribute
java.lang.IllegalArgumentException: Control character in cookie value or attribute. 该异常说明cookie中的val ...
- 解决Tomcat的IllegalArgumentException: Control character in cookie value or attribute错误
接口中带有中文,tomcat8 17-Apr-2019 13:21:23.734 严重 [http-nio-8082-exec-2] org.apache.coyote.http11.Abstract ...
- 异常:java.lang.IllegalArgumentException: Control character in cookie value or attribute.
后台提示: 严重: Error processing requestjava.lang.IllegalArgumentException: Control character in cookie va ...
随机推荐
- (转)Should I use char** argv or char* argv[]
As you are just learning C, i recommend you to really try to understand the differences between ar ...
- git的使用与积累
之前对git可以说是一无所知,不过现在做工程要用到,于是就花点时间找了一些资料,本文也只是各种git学习资料的集合,权当是学习笔记吧 一:git的安装与配置 首先,git其实一般在linux环境下都是 ...
- GO语言基础
Go语言开发 一.Linux下搭建Go开发环境 首先下载Go语言的开发安装包,不管是在官方网站或者国内的Golang镜像都是可以的,注意区分64位和32位的安装包. 下载完安装包之后tar zxvf进 ...
- Virtual Environments
virtualenv 再另一篇随笔中已经提到过virtualenv.如果我们有好几个不同的项目,他们需要的第三方包版本不同,那怎么办呢.这时候就需要virtualenv创建一个虚拟环境,里面包含了一个 ...
- C#读写word
操作word之前需要在COM引入Microsoft Office 12.0 Object Library(文件库可能不一样) 然后添加using Microsoft.Office.Interop.Wo ...
- PHP方法的作用域
PHP支持6种方法作用域:public.private.protected.abstract.final和static,本文只讨论前5种作用域. public:公共作用域.(就像空气和阳光,天下公用) ...
- SQL SERVER中如何格式化日期
1. SELECT convert(varchar, getdate(), 100) -- mon dd yyyy hh:mmAM (or PM) -- Oct 2 2008 11:01AM ...
- Python计算机视觉3:模糊,平滑,去噪
我是一名初学者,如果你发现文中有错误,请留言告诉我,谢谢 图像的模糊和平滑是同一个层面的意思,平滑的过程就是一个模糊的过程. 而图像的去噪可以通过图像的模糊.平滑来实现(图像去噪还有其他的方法) 那么 ...
- windows平台使用Microsoft Visual C++ Compiler for Python 2.7编译python扩展
在windows平台上安装python c extension的扩展包是件很痛苦的事情,一般通过安装vc/vs系列来编译C扩展,不过安装包都比较大.或者通过mingw编译,不过有时会在兼容性上出现点问 ...
- 关于#ifndef,#define,#end的说明
#ifndef,#define,#end 是宏定义的一种---条件编译 这样我直接举个例子好了:我定义两个相同的类A分别在single.h和singlenew.h single.h: #include ...