解决Cookie中文乱码问题
使用 java.net 包下的 URLEncoder 类将字符串重新编码, 和 URLDecoder 类对编码后的字符串解码
URLEncoder 类:
方法 | 描述 |
---|---|
public static String encode(String str, String encode) | 使用特定的编码方案将字符串转换为 application/x-www-form-urlencoded 格式。 |
URLDecoder 类:
方法 | 描述 |
---|---|
public static String decode(String str, String encode) | 使用特定的编码方案解码 application/x-www-form-urlencoded 字符串。 |
存储Cookie
String str_utf8 = URLEncoder.encode(str,"utf-8"); // 重新对字符串进行编码
Cookie c = new Cookie("name", str_utf8);
response.addCookie(c);
读取Cookie
Cookie[] cs = request.getCookies();
String str = "";
if(cs != null && cs.length > 0){
for(Cookie c : cs){
if("name".equals(c.getName())){
String str_utf8 = c.getValue(); // 获取cookie中存储的值
str = URLDecoder.decode(str_utf8, "utf8"); // 解码获得原始的字符串
}
}
}