在开发中有时需要向cookie中存入中文信息,如用户的姓名等。
如果直接使用
Cookie cookie = new Cookie("name", "张三");
response.addCookie(cookie);
然后在JSP页面输出时,中文“张三”会变成乱码。
为了解决向cookie中存中文乱码的问题,需要在存入时,对中文用如下方式进行编码:
String s = URLEncoder.encode("张三"); //java.net.URLEncoder类
Cookie cookie = new Cookie("name", s);
response.addCookie(cookie);
在读取cookie的内容时,需要使用如下方法解码:
String str = URLDecoder.decode(cookie.getValue()); //java.net.URLDecoder类
out.print(str); //正确输出 “ 张三 ”
运用以上方法,即可在cookie中存取中文,避免出现乱码问题。