首页 > 代码库 > 通过Cookie来记住用户名出现乱码问题(URL编码)
通过Cookie来记住用户名出现乱码问题(URL编码)
在登录时,提交一个中文名的用户名到服务器并返回到客户端的Cookie中时,
这个过程会后台会报 java.lang.IllegalArgumentException (非法数据异常)
-->在给前台发送Cookie之前对数据进行URL编码即可解决。
-->URLEncoder.encode(username, "utf-8")
后台解决编码问题后前台就可以接受到Cookie值,这时就会接收到类似:“%E7%AB%A5%E6%97%AD%E5%B9%B3”的数据,这时用iso8859-1的码表来读出的用户名信息。
-->在取得Cookie值后对数据进行URL解码即可。
-->username = URLDecoder.decode(username, "utf-8");
上面的问题导致的主要原因是服务器默认是用iso8859-1的码表来编解码数据。则我们需要对数据进行URL编解码操作。
Java中提供了进行URL编码和解码的类
//将指定的字符串按照指定的编码转换为URL编码的形式
URLEncoder:static String encode(String name,String enc);
//将URL编码后的字符串按照指定编码解码为源字符串
URLDecoder:static String decode(String name,String enc);
通过Cookie来记住用户名出现乱码问题(URL编码)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。