这回直接了当。Django.set_cookie()方法,将Value的值格式化了。。格式如下。。
\347\275\227\345\261\261\345\216\277\347\254\254\344\270\200\345\256\236\351\252\214\345\260\217\345\255\246|102\347\217\255
求前台的解码方法。谢谢了。详情见这个帖子t/207446#reply4
1 Anybfans OP ![]() |
![]() | 2 TakanashiAzusa 2015-07-22 15:00:26 +08:00 ![]() decodeURIComponent(escape('\347\275\227\345\261\261\345\216\277\347\254\254\344\270\200\345\256\236\351\252\214\345\260\217\345\255\246|102\347\217\255')) |
3 Anybfans OP |
![]() | 4 TakanashiAzusa 2015-07-22 15:19:38 +08:00 你把'school'和'cookie'都打印出来看看就知道问题出在哪了。。 |
5 Anybfans OP |
![]() | 6 TakanashiAzusa 2015-07-22 15:37:42 +08:00 @Anybfans 没看明白。你的输出结果上我也没看到有双引号啊。。 |
![]() | 7 TakanashiAzusa 2015-07-22 15:40:05 +08:00 http://jsbin.com/vubofemebo/edit?html,js,output 你看下这个demo,你要是'cookie'的值输出和截图那个一样的话,是不会有问题的。。 |
8 Anybfans OP |
9 Anybfans OP |
10 Anybfans OP @Anybfans cookie = cookie.replace('"','').replace('"',''); 这个执行也不行。。同样的效果。。 |
![]() | 11 TakanashiAzusa 2015-07-22 16:09:46 +08:00 ![]() 我不会正则,但是从 ![]() 来看,你的问题是出在'getCookie'函数上。把这个函数内部那个正则稍微改一下吧。 |
12 Anybfans OP @TakanashiAzusa 好 。我看看。谢谢啦!这个问题究竟了一天了。。后台解决一点问题都没,但是需要一直post。前台搞不定,谢谢你了! |
![]() | 13 TakanashiAzusa 2015-07-22 17:34:50 +08:00 ![]() @Anybfans 我刚刚又研究了下。大概知道问题在哪了。你这里的cookies值的设置方法有问题,cookies的存储方式不变一下的估计无解。。"\"这个符号本来是作为转义字符用的,但是在cookies值里它失去了转义的作用,实际上变成了正常浏览器下的"\\",所以cookies里读出来的"\347\275\227"其实相当于"\\347\\275\\227",自然无法转义。你这里一开始存cookies的时候就应该用'encodeURI'对中文字符进行转码。另外'\347\275\227'这种字符编码是啥鬼,我想了半天没找出来对应哪个编码方式 |
14 Anybfans OP @TakanashiAzusa ![]() 后台是django 设置的cookie. 用的set_cookie. 刚开始我也找了源码。设置的 时候会对这个value进行str()强制转换。转换完就这样了。。因为这个value是unicode 不知道为什么str()以后就这样子了。。 |
![]() | 15 TakanashiAzusa 2015-07-22 17:44:22 +08:00 ![]() @TakanashiAzusa 感觉我这里的解释好像还是有点问题。字符集这部分还是有点问题。。“\347\275\227”这种应该是所谓的汉字八进制转义方法,但是从cookies里取出来之后就全部都成utf8了,变成了普通了字符串,所以escape不了。 好像还是有点混乱,看看有没有前端牛能解释这个问题吧。不过反正我还是建议你存cookies的时候换个编码方式比较好。。 |
16 Anybfans OP |
![]() | 17 happyjohann 2017-02-15 12:00:01 +08:00 @Anybfans 我也遇到了同样的问题,请问你找到解决办法了吗? |