解决JS操作Cookies出现的乱码问题,修复WordPress评论乱码

为了解决博客纯静态之后无法记住用户信息的问题,我将这个功能改成JS操作Cookie的方式,将用户信息直接保存到用户本地cookies当中,从而脱离php不再受缓存的影响。不过,近来偶尔发现有个别评论乱码了,如下所示:

解决JS操作Cookies出现的乱码问题,修复Wordpress评论乱码

看了下乱码的组成,发现已被被转成URL编码格式。本以为是我上次自己写的js不够完善的原因,于是我从ZBLOG中移植了记住评论信息的JS代码。

更改后,观察了几天,发现还是偶尔会有这种URL转码现象,于是决心解决一下这个问题。

考虑了半天,发现问题其实很好解决,只要在保存cookies的时候先进行url转码,然后再取出的时候在进行url解码就行了!有了思路,问题很快就得到了解决!

在js中使用encodeURIComponent 和 decodeURIComponent,前者是将内容进行url编码,后者则是将url解码。

于是,将记住评论信息的JS稍作修改即可搞定(JS原代码来自ZBLOG-ASP):

这样改进之后,浏览器将会以url编码来保存用户信息,待读取的时候再进行url解码,从而解决偶尔产生的乱码问题:

解决JS操作Cookies出现的乱码问题,修复Wordpress评论乱码

本文仅分享解决cookies乱码的思路,如何部署该功能请查看张戈博客之前的文章:http://zhangge.net/4538.html

发表评论

gravatar

:?::razz::sad::evil::!::smile::oops::grin::eek::shock::???::cool::lol::mad::twisted::roll::wink::idea::arrow::neutral::cry::mrgreen:

刷新评论

目前评论:8   其中:访客  8   博主  0

  1. 飞哥 4 来自天朝的朋友 谷歌浏览器 Windows 7 广东省东莞市 电信

    进入后台。Warning: unlink(C:\WINDOWS\TEMP/d480aa4800f480480480480480c480ca480db480480480480480480c48004804800480s480480drG480) [function.unlink]: Permission denied in D:\wwwroot\hfwhcm\wwwroot\wp-admin\includes\file.php on line 457
    请问是什么问题

  2. 松果 3 来自天朝的朋友 谷歌浏览器 Windows 7 四川省达州市 电信

    签到成功!签到时间:下午8:43:49,每日签到,生活更精彩哦~

  3. 歌词找歌名 1 来自天朝的朋友 谷歌浏览器 Windows 7 广西梧州市 联通

    评论一下看是否会乱码!

  4. 极品飞鸽 5 来自天朝的朋友 谷歌浏览器 Windows 7 四川省 联通

    你对主题做了很多修改,感觉好多高大上的东西

  5. 学习学习 0 来自天朝的朋友 谷歌浏览器 Windows 10 福建省南平市 电信

    学习一下COOKIES的处理

  6. 狂族晨曦 5 来自天朝的朋友 谷歌浏览器 Windows 7 四川省成都市 联通

    张哥,JS我不太懂,为什么使用了本文中的代码之后,邮箱和网址都可以被cookie保存,但是在cookie中”author”对应的”undefined”,昵称不能被记录呢?comment_author_*******也是有值的。

    • 狂族晨曦 5 来自天朝的朋友 谷歌浏览器 Windows 7 四川省成都市 移动

      鼓捣了几个小时,发现自己坑自己了。以前啥也不知道,把文章页编辑标签的ID设置的也是”author”,这才导致的昵称那里显示未定义。

  7. 闲鱼 1 来自天朝的朋友 谷歌浏览器 Windows 7 湖南省衡阳市 联通

    不错,感谢分享

加载中,请稍候...