https://www.jb51.net/softs/566800.html
jquery.base64.js是一款编程辅助工具,可以完美解决中文乱码问题。欢迎下载jquery.base64.js修复解决。
jquery.base64.js怎么使用
在用c++在插件里面把带中文的字符串用base64算法加密后推给网页的js去解码,解出来的相信大家预料到了,洋文一字不差,中文就TMD的都是乱码。
google了一下,也没找到能解决问题的方法,没办法只好自己研究了。后来发现问题原因了,编码过程肯定是没有问题的,看到前面加颜色那段字了没,就是我解出来的编码虽然是utf8,但是将中文文字进行Base64编码再解码后,重新排列编码的时候,往往就会出现乱码,UTF8页面的编码实际还是用UTF-16存储的。应该在解码后把UTF8还原为UTF-16格式。这样就能真正搞定javascript解密中文base64编码的问题了。
最近使用jQuery遇到中文乱码问题,其实他的中文乱码就是因为contentType没有指定编码,只需在jQuery.js中搜索
’contentType’
然后在application/x-www-form-urlencoded后面加上
; charset=UTF-8
最终变成
contentType:"application/x-www-form-urlencoded; charset=UTF-8"
问题搞定,我觉得最搞笑的是网上这么多人都在自己的代码里面再进行一次转码,还写了很详细的分析,该如何转,太滑稽了
Base64介绍
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个位元为一个单元,对应某个可打印字符。三个字节有24个位元,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。一些如uuencode的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64。Base64常用于在通常处理文本数据的场合,表示、传输、存储一些二进制数据。[转自维基百科]
Base64编码将3个Byte共24Bit从高到低重新拆分成4部分每部分6Bit,分别为0x0——0x3f,对应字符为A——Z和a——z和0-9和+/,共64个。如果最后剩余1个Byte,则将其编码为2个6Bit的Base64编码(第二个Base64编码仅2Bit,需在其后面添加4Bit的0),再在末尾添加2个=字符;如果最后剩余2个Byte,则将其编码为3个6Bit的Base64编码(第三个Base64编码仅4Bit,需在其后面添加2Bit的0),再在末尾添加1个=字符。