ISO-8859-1乱码恢复

ISO-8859-1乱码恢复

大家好,又见面了,我是全栈君。

为兼容较旧的jQuery插件,我把jQuery版本号从2.1.x降到了1.8.x,这比加入jquery-migration插件要来得干脆。

我没把这两个版本号的的区别一一记下来,而是直接改个版本号号。降级之后页面没有报错,我也就觉得没问题。直到有一天发现数据库非常多用户生成内容乱码了。

通过一番调试,原因找到了:jQuery ajax使用的http方法,1.9.0之前用选项type指定。而1.9.0及之后用选项method(选项type为method的别名)指定:

//from jquery 1.9.0
jQuery.ajax("/action",{
    method:"POST"
});
//before jquery 1.9.0
jQuery.ajax("/action",{
    type:"POST"
});

当把jQuery版本号从2.1.x降到了1.8.x时,以下的代码就隐藏着一个bug,不报错但非常致命:

jQuery.ajax("/action",{
    method:"POST" //buggy
});

原因是jQuery 1.8.x不认选项method,意味着jQuery终于的决定使用的http方法会是默认的”GET”

当出现乱码时。首先可能会确定服务端的字符解码有没有问题,即使服务端字符解码设置已经稳稳地应用在其它非常多项目中。

bug显露出来了,kill掉即可。但这期间bug造成的数据库不少用户生成数据乱码怎么办。承认技术失误并向用户道歉?

非常久曾经听说有软件能够将乱码恢复成正常文本,这说明恢复还是有希望的。现已知乱码是因未对URI进行解码造成的,因此解码之后应该就能恢复成正常文本。

照着这样的思路我把乱码内容复制出来做了个測试:

decodeURIComponent(escape("一直想买一个,可惜没有米啊•Š"))

居然能够恢复出正常文本!

于是写了个小程序,从数据库查出乱码内容。再将其恢复成正常文本。最后写回数据库。

有时候降级不只改个版本号号那么简单,一些代码得跟着同步调整。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116354.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Spring的AOP与动态代理[通俗易懂]

    Spring的AOP与动态代理[通俗易懂]Spring的AOP与动态代理

    2022年4月22日
    49
  • 真正理解exists 和not exists

    真正理解exists 和not exists前言今天看了下mysql训练题,其中有一题很有意思。​    下面也写了sql解答,使用了group_concat()函数,这个函数是分组后将一组的字段(比如name)拼接在一起,默认以逗号分隔。这个思路可以,但是在成绩表插入信息时的顺序是乱的,那又怎么查。    我然后看了几个其他人的答案,还有的用课程数作比较的,写的很乱很杂。想了一会,觉得使用notexists解答是可以的。exists与notexist.

    2022年7月27日
    3
  • python字典和json字符串相互转化的方法_Python读取json

    python字典和json字符串相互转化的方法_Python读取json序列化与反序列化按照某种规则,把内存中的数据保存到文件中,文件是一个字节序列,所以必须要把内存数据转换成为字节序列,输出到文件,这就是序列化;反之,从文件的字节恢复到内存,就是反序列化;pytho

    2022年7月28日
    5
  • 智能优化算法:鲸鱼优化算法-附代码

    智能优化算法:鲸鱼优化算法-附代码智能算法:鲸鱼优化算法-附代码文章目录智能算法:鲸鱼优化算法-附代码1.算法原理1.1包围猎物1.2狩猎行为1.3搜索猎物1.4算法流程2.算法结果:参考文献:摘要:鲸鱼优化算法(whaleoptimizationalgorithm,WOA)是2016年由澳大利亚格里菲斯大学的Mirjalili等提出的一种新的群体智能优化算法,其优点在于操作简单,调整的参数少以及跳出局部最优的能力强。1.算法原理鲸鱼优化算法(whaleoptimizationalgorithm,WOA)是

    2022年5月24日
    84
  • Java安全之Weblogic内存马

    Java安全之Weblogic内存马0x00前言发现网上大部分大部分weblogic工具都是基于RMI绑定实例回显,但这种方式有个弊端,在WeblogicJNDI树里面能将打入的RMI后门查看

    2021年12月13日
    52
  • ubuntu 设置不见了_微信莫名其妙的被注销了

    ubuntu 设置不见了_微信莫名其妙的被注销了        今天学习GTK+,所以下载了源码包,然后安装了必要的依赖,装好后,因为默认安装是安装在/usr/local/include/目录下了,为了编程的方便,所以就建立了符号链接到/usr/include/目录下。       一晃就是一天了,现在打开某些程序,发现怎么显示不对,跟我的gentoo安装了gnome时的默认界面一样,很朴素的样子,怎么回事?一看Firefox还好,还没

    2025年11月26日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号