html5下A标签,自定义利用download属性下载文件的编码方式
利用a标签的download属性,生成一个文本下载文件,当字符串中有中文时候,通常就会出现保存的txt文件编码默认为utf-8,以下代码可以解决文本文件编码为utf-8或ansi格式自定选择。function base64(vStr){//base64编码代码略,自行去寻找插件。这里模拟直接返回编码后的值。return '5Yip55SoQeagh+etvueahGRvd25s...
·
利用a标签的download属性,生成一个文本下载文件,当字符串中有中文时候,通常就会出现保存的txt文件编码默认为utf-8,以下代码可以解决文本文件编码为utf-8或ansi格式自定选择。
function base64(vStr){
//base64编码代码略,自行去寻找插件。这里模拟直接返回编码后的值。
return '5Yip55SoQeagh+etvueahGRvd25sb2Fk5YGaQU5TSeaWh+acrOS/neWtmOa1i+ivle+8gQ==';
}
//预保存的文本内容
var tStr ="利用A标签的download做ANSI文本保存测试!"
saveTxt = function(vFilename,vText,vCharset) {
//文件名判断处理
if(!vFilename){return 'vFilename is null';}
try{ //养成好习惯,加入错误处理
//创建A标签
var aLink = document.createElement('a');
if(vCharset.toUpperCase()=='ANSI'){
//利用base64编码解决URL编码默认是UTF-8模式。
aLink.href = 'data:text/plain;base64,' + base64(vText);
}else{
//encodeURIComponent默认是将字符转换成utf-8格式的url编码
aLink.href = 'data:text/plain;charset=utf-8,' + encodeURIComponent(vText);
}
//A标签download属性赋值
aLink.download = vFilename;
//模拟点击A标签
aLink.click();
return true;
}catch(err){
console.log(err)
console.log(err.message);
return false;
}
}
saveTxt('saveUtf8.txt',tStr,'utf-8'); //utf-8编码保存文本
saveTxt('saveAnsi.txt',tStr,'ansi'); //ansi编码保存文本
更多推荐
已为社区贡献1条内容
所有评论(0)