中文和英文字符不同,中文属于Unicod字符,在内存中站4个字符,而英文属于ASCII字符,内存中只占2个字符。Cookie中使用Unicode字符时需要对Unicode字符进行编码,否则会乱码。编码使用java.net.URLEncoder类的encode(String str,String encoding)方法,解码使用java.net.URLDecoder类的decode(String str,String encoding)方法。

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<jsp:directive.page import="java.net.URLEncoder"/>
<%@ page import="java.net.URLDecoder" %>
<%
Cookie cookie =new Cookie(URLEncoder.encode("姓名","UTF-8"),
URLEncoder.encode("刘京华", "UTF-8")
);
response.addCookie(cookie);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%
if(request.getCookies()!=null){
for(Cookie cc:request.getCookies()){
String cookieName=URLDecoder.decode(cc.getName(), "UTF-8");
String cookieValue=URLDecoder.decode(cc.getValue(), "UTF-8");
out.println(cookieName+"="+cookieValue);
}
}else{
out.println("Cookie 已经写入客户端,请刷新");
} %>
</body>
</html>

结束语:Cookie保存中文只能编码,一般使用UTF-8编码即可。不推荐使用GBK等中文编码,因为浏览器不一定支持,而且javascript也不支持GBK编码。

Unicode编码:保存中文cookie的更多相关文章

  1. Jmeter 处理Unicode编码转为中文

    对于接口中返回报文,有的接口返回信息是Unicode编码,写断言的时候,要么就Response Assertion就写成Unicode编码的断言,如下图: 真心不觉得返回报文加密能有多安全,别人将报文 ...

  2. 中文转换成Unicode编码 和 Unicode编码转换为中文

    前几天,遇到一个问题,就是在浏览器地址栏传递中文时,出现乱码,考虑了一下,解决方式有很多,我还是采用了转换编码的方式,将中文转换为Unicode编码,然后再解码成中文,以下是实现的过程,非常简单! p ...

  3. JavaScript为unicode编码转换为中文

    代码laycode - v1.1 关于这样的数据转换为中文问题,常用的以下方法. 1. eval解析或new Function("'+ str +'")()  str = eval ...

  4. Unicode编码与中文互转

    /** * unicode编码转换为汉字 * @param unicodeStr 待转化的编码 * @return 返回转化后的汉子 */ public static String UnicodeTo ...

  5. Jmeter查看结果树Unicode编码转中文方法

    本文为转载微信公众号文章,如作者发现后不愿意,请联系我进行删除 在jmeter工具的使用中,不管是测试接口还是调试性能时,查看结果树必不可少,然而在查看响应数据时,其中的中文经常以Unicode的编码 ...

  6. PHP解码unicode编码的中文字符

    问题背景:晚上在抓取某网站数据,结果在数据包中发现了这么一串编码的数据:"......\u65b0\u6d6a\u5fae\u535a......www.jinyuanbao.cn" ...

  7. VS2015解决非Unicode编码包含中文字段无法编译的问题

    用VS2015打开并编译,定位到编译错误的文件(.cs而不是可视化编辑视图) 文件--高级保存选项--编码 改为 Unicode-代码页1200 这样不论用VS2015/2013/2012/2010 ...

  8. scrapy 爬虫返回json格式内容unicode编码转换为中文的问题解决

    最近在基于python3.6.5 的环境使用scrapy框架爬虫获取json数据,返回的数据是unicode格式的,在spider里面的parse接口中打印response.text出来如下: cla ...

  9. PHP-解码unicode编码的中文字符

    在Python中使用 "\uxxxx".decode("unicode_escape") 1. class Helper_Tool { public stati ...

随机推荐

  1. 从ext4将mysql数据目录移动至lustre出现(InnoDB: Unable to lock ./ibdata1, error: 38.)

    因为数据目录过大,因此我把目录从本地移到了共享存储中.在修改了/etc/my.cnf和/etc/init.d/mysqld之后发现数据库可以运行,但启动速度很慢 原因是原文件系统是ext4,而目标文件 ...

  2. Hadoop创建/删除文件夹出错

    log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFact ...

  3. 用visualbox虚拟机安装ubuntu

    用visualbox虚拟机安装ubuntu 哥的电脑原来要装双系统.结果电脑死了,磁盘格式化了.什么盘符又挺混乱.后来说用虚拟机装系统安全,又開始摸索. 我的电脑因之前的缘故,VMware软件用不了, ...

  4. Tsk4.5异步

    public async void LoadData<T>(WhereClip where,OrderByClip order) where T : Entity, new() { try ...

  5. Java 里如何实现线程间通信

    正常情况下,每个子线程完成各自的任务就可以结束了.不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及到了线程间通信了. 本文涉及到的知识点:thread.join(), object.w ...

  6. angular学习笔记(三十)-指令(7)-compile和link(1)

    这篇主要讲解指令中的compile,以及它和link的微妙的关系. link函数在之前已经讲过了,而compile函数,它和link函数是不能共存的,如果定义了compile属性又定义link属性,那 ...

  7. (原创)sqlite封装库SmartDB1.3发布

    最近终于稍微有点空对SmartDB进行升级了,SmartDB1.3比之前的版本做了简化,增强了易用性和灵活性. SmartDB对sqlite做了一层封装,屏蔽了诸多细节,使得我们使用起来很方便.在注重 ...

  8. python TCP编程

    1.socket 服务端和客户端通过socket套接字进行通信 2.服务端 import socket import threading def tcp_handler(connect_sock, a ...

  9. Java运行时动态加载类之ClassLoader

    https://blog.csdn.net/fjssharpsword/article/details/64922083 *************************************** ...

  10. $.ajax使用总结(一):Form提交与Payload提交

    http://blog.csdn.net/yiifaa/article/details/73468001 *********************************************** ...