1, 中文Cookie问题,由于Cookie的编码问题,导致在保存中文的Cookie时,不能正常保存。
解决方案:
第一步:保存中文的Cookie之前做一下编码,用到了java.net包下的一个类的方法:URLEncoder的encode(String s, String enc)方法,次方法有两个参数,第一个参数为要编码的中文字符,第二个为要编码的方式如:utf-8,gb2312,GBK等编码方式。
第二部:读取中文的Cookie,由于我们在保存中文的Cookie时,用到了指定编码的方法进行保存,所以的读取的时候要做一下解码。这时就用到了java.net包下的另一个类,URLDecoder的decode(String s, String enc)进行解码。具体实例如下:
保存中文Cookie:
String name = "张三";
//保存Cookie之前指定编码
name = URLEncoder.encode(name,"utf-8");
Cookie nameCookie = new Cookie("name", name);
response.addCookie(nameCookie);
获取中文Cookie的内容:
Cookie[] cookies = request.getCookies();
for(Cookie cok:cookies){
String name = cok.getName();
if("name".equals(name)){
String zhongwenName = cok.getValue();
//获取中文的Cookie时,做一下解码(反编码);
zhongwenName = URLDecoder.decode(zhongwenName,"utf-8");
}
}
本文介绍了解决中文Cookie在保存及读取过程中出现乱码的方法。通过使用URLEncoder.encode方法进行编码,以及URLDecoder.decode方法进行解码,确保了中文Cookie能够正确地被处理。

7101

被折叠的 条评论
为什么被折叠?



