ExcellentExport.js的方法,利用base64下载文件。支持chrome ,opera,firefox. 于是决定拿来为我所用! 说明一下,这个js的好处是:一句js脚本,就能前台下载,完全无须后台。 但外国人不了解中文的csv用excel打开直接乱码。 但用记事本打开,再直接保存,或另存为ansi都可以让中文不乱码。 js里默认应该是utf-8,昨天试了用utf-8转gb2312,失败了! 于是找到这个:
再找到这个:
经过用winhex等验证,乱码的csv直接保存后,记事本会自动增加BOM前缀。于是弄了一上午都在想办法在“要输出的文本”前增加上EF BB BF. 弄一上午,肯定是失败啦,否则也用不了一上午。失败的方法是: base64(String.fromCharCode(0xef, 0xbb, 0xbf) 我要输出的文本) 或是根据winhex对正确文件的显示,在里面补充一些个0x00,都不行。因为EF BB BF无论怎么加,一经编码都变成了:茂禄驴(16进制是:C3 AF C2 BB C2 BF 00). 吃过饭回来,想到BASE64可以保存图片。那么我要是用这工具分别编码一下正确和乱码的文件不就行了。 于是用:http://www./Tools/GetImageBase64Code 来试了下,结果真找到了不同。 记事本另存的正确结果:77u/5bqP5Y 3LOS/oeaBrw0K5ae 直接保存,无BOM头的结果:5bqP5Y 3LOS/oeaBrw0K5ae 哈哈!把代码改为:
,解决问题! 真是,4个字符折腾一天。真是只有4个字符。。。。。。。。 -------------------------------------- 解释一下:ExcellentExport.js的思路,就是构造这样一个a标签: |
|
来自: liang1234_ > 《编码》