java中Cookie中文字符乱码问题

如果Cookie中的Value 中有中文字符出现,在加入Cookie的时候,会出现下面的错误:  java.lang.IllegalArgumentException: Control character in cookie value or attribute.

当我们设定Cookie的Value的值得时候:  cookie.setValue(ret); 改为如下方式尽心编码!    cookie.setValue(URLEncoder.encode(ret, "utf-8"));使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式,中文字符是两个字节。

当我们在取出Cookie的Value的值时,同样利用相应的解码:  String val = cookie.getValue();  val = URLDecoder.decode(val, "utf-8"); 使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码。

  

时间: 2024-08-02 02:40:25

java中Cookie中文字符乱码问题的相关文章

jsp与mysql中的中文字符乱码问题

刚开始自学jsp,在练习的过程中遇到了一个很严重的问题,就是中文字符乱码的问题,我用了三天的时间,搜集资料,终于解决了这个问题,现在对学到的东西进行一下总结整理. 1.首先是jsp页面显示乱码的问题,<title></title>标签中有中文有英文,设置<meta charset="utf-8" > 显示乱码,改为gbk则可正常显示,其他页面使用utf-8则显示正常.最终发现是因为文件创建是用了不同的方法,一般情况下,用记事本编写代码,文件另存为*.

JAVA 中URL中文参数乱码的处理方法(汇总)

解决输入的全角汉字或者日文在URl中乱码的问题.以下我的实现 JS代码: function shiborikomuFw() {     var url = '${url08}';     var str = document.getElementsByName('fw');     //Str str = document.getElementsById('fw').Value;     for (var i = 0; i < str.length; i++) {     url = url +

java web中请求和响应中包含中文出现乱码解析

说明:在计算机中保存的一切文本信息是以一定的编码表(0,1,0,1)来保存我们所认识的字符(汉字或英文字符),由字符到计算机存储的二进制过程是编码,由读取二进制到文本的过程称为解码.而字符编码有多种不同的编码表,所以,如果编码格式和解码格式不是同一个码表就会出现乱码.想要避免出现乱码,需要使保存和读取时使用相同的码表. 在java web编程中经常会出现乱码,现在详细讲解一下如何进行设置,避免乱码 1 网页编码 在编写网页的时候,需要指定网页的编码格式,使用<meta http-equiv=&quo

mysql中采用concat来拼接中文字符乱码解决方式(转)

mysql中采用concat来拼接中文字符乱码解决方式 - fuxuejun的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/fuxuejun/article/details/6284725 mysql concat乱码问题解决 concat(str1,str2) 当concat结果集出现乱码时,大都是由于连接的字段类型不同导致,如concat中的字段参数一个是varchar类型,一个是int类型或doule类型,就会出现乱码. 解决方法:利用mysql的字符

SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;

情况一: ajax中传值时是乱码(后台可以获取到中文字符,但用@ResponseBody返回时前台为乱码) 情况二: Controller 中 request.getParameter()获取到的是乱码 @RequestMapping(params = "method=submit") public String submit(HttpServletRequest request, ModelMap modelMap) throws Exception{ String uname =

java面试题:如果一串字符如&quot;aaaabbc中国1512&quot;要分别统计英文字符的数量,中文字符的数量,和数字字符的数量,假设字符中没有中文字符、英文字符、数字字符之外的其他特殊字符。

package com.swift; public class TotalNumber_String { public static void main(String[] args) { /* * 如果一串字符如"aaaabbc中国1512"要分别统计英文字符的数量,中文字符的数量,和数字字符的数量, * 假设字符中没有中文字符.英文字符.数字字符之外的其他特殊字符. */ String str="aaaabbc中国1512"; int engishCount =

WP8_UTF8 to GB2312转码 (url网址中带中文字符的处理)

直接使用例如:http://www.abc.php?name=中文符 ,客户端调用,在服务端修改后,会出现乱码, 而windows phone 又不能直接支持gb2312, 经过大量分析和验证,发现 凡事 经过"从汉字转换到16进制"后, 即可成功实现转码,代码如下: string text = "中文符"; string url1 = "http://www.abc.php?name="; string url2 = url1 + Utf8To

PHP中的中文截取乱码问题_gb2312_utf-8

一.字符串编码为gb2312,一个中文占俩字节 ? public static function chinesesubstr($str, $start, $len) { // $str指字符串,$start指字符串的起始位置,$len指字符串长度         $strlen = $start + $len; // 用$strlen存储字符串的总长度,即从字符串的起始位置到字符串的总长度         for($i = $start; $i < $strlen;) {            

js的url中传递中文参数乱码,如何获取url中参数问题

一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码: 1.传参页面Javascript代码: <script type=”text/javascript”> function send(){ var url = "test01.html"; var userName = $("#userName").html(); window.open(encodeURI(url + "?userName="