中间件如下错误:java.lang.IllegalArgumentException: Control character in cookie value or attribute.如下图所示:

问题原因:

Cookie处理中文时编码问题,中文采用的是Unicode编码,而英文采用的是ASCII编码,当Cookie保存中文的时候需要对中文进行编码,而且从Cookie中取出内容的时候也要进行解码。

解决方案:

我这边使用的是jquery.cookie.js来处理Cookie数据,如下。

编码

var str=encodeURI(encodeURI("1008611ss-爱你哦"));
$.cookie("TestCookie", str, { expires: 7 });

解码

var msg=decodeURI(decodeURI($.cookie("TestCookie")));
alert(msg)

注意:

就是将取到的Cookie值进行编码,有时,需要编码2次,然后得解码一次。这点需要大家注意,这2种情况再开发过程中,都遇到过!所以大家在使用是,不要因为一次编码不成功,就认为对有中文的Cookie编码没用,得多多尝试,好了就到这了。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐