首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

javascript生成zip编码有关问题

2012-10-24 
javascript生成zip编码问题jsZip? 一个接口很明确的用 javascript 生成 zip 文件的库,它利用了标准浏览器

javascript生成zip编码问题

jsZip? 一个接口很明确的用 javascript 生成 zip 文件的库,它利用了标准浏览器的 data 协议 可以使得 javascript 生成的内容由用户保存到本地文件,但是由于作者主要处于英文环境下,对于其他语言文字比如中文考虑不太周全,可以在其首页实验一下中文文件名称和中文内容。

(firefox,safari可用, 注意下载文件须手动修改后缀名为 zip)

?

分析其实现:

利用 javascript 中单个字符表示其他程序语言中的 byte 概念,zip格式的二进制控制字符以及整数通过\xyy编码到javascript字符串中,再利用base64编码对每三个字符所表示的二进制byte(charCode)编码为4个 base64编码


整数编码到字符串(字符数组 == byte数组)

原始代码用 eval 封装 byte 到字符,比较难看,我修改为 String.fromCharCode

?

utf8Encode:function(input){input=encodeURIComponent(input);return this._transfer(input);},_transfer:function(input){input=input.replace(/%.{2,2}/g,function(m){var hex=m.substring(1);return String.fromCharCode(parseInt(hex,16));});return input;},

?即将一个字符的utf-8表示的三个byte,封装到三个字符中去,每个字符的charcode表示原来字符utf-8编码的一个byte,这样子的话下面的 base64编码就可以像以前一样了。



演示:

注意目前只有 firefox,safari 稍微正常电

?

演示@google code

?

?

?

?

?

?

热点排行
Bad Request.