一段编码函数,是可以中文编码的
function encode64(data) {
var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var PAD = "=";
var ret = "";
var leftchar = 0;
var leftbits = 0;
for (var i = 0; i < data.length; i++) {
leftchar = leftchar << 8 | data[i];
leftbits += 8;
while (leftbits >= 6) {
var curr = leftchar >> leftbits - 6 & 63;
leftbits -= 6;
ret += BASE[curr]
}
}
if (leftbits == 2) {
ret += BASE[(leftchar & 3) << 4];
ret += PAD + PAD
} else if (leftbits == 4) {
ret += BASE[(leftchar & 15) << 2];
ret += PAD
}
return ret
}
我想写一个解码的函数,我自己编写的是
function decode(encodedData) {
var BASE = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz01234567**+/";
var PAD = "=";
var ret = [];
var leftchar = 0;
var leftbits = 0;
for (var i = 0; i < encodedData.length; i++) {
var charValue = BASE.indexOf(encodedData[i]);
if (charValue >= 0) {
leftchar = leftchar << 6 | charValue;
leftbits += 6;
if (leftbits >= 8) {
leftbits -= 8;
ret.push((leftchar >> leftbits) & 255);
}
}
}
return ret.join('');
}
但是我写的只能接码数字和字符,中文却不行,不知道为什么
帮我写一个解码函数吧,大学生,在一个公司刚兼职,就遇到这个问题
补充一下,看了很多的回复,都有问题,基本都是汉字根本无法显示,数字编码解码出来都和编码结果不一样,比如,111编码后是AQEB,但我用AQEB解码,好几个回复的都不是111,汉字解码无法显示
另外,有一个回答说,因为我BASE里没有中文字符,所以要加上,要不然不能解码函数,我不明白,那为什么编码函数没有中文,却可以编码中文呢?
希望大家写好代码,用我的编码函数测一下数字和汉字编码后的结果,再用结果测一下你们解码函数还原的是否正确
忧伤玩不起,回复的那一个HTML文件,和我编码函数很像,文件也能用,但只是很像,其中有一点不一样,没有变量PAD,希望能看懂的,根据他的解码函数帮我写一下,他那个确实很像