html5下A标签,自定义利用download属性下载文件的编码方式

论坛 期权论坛 脚本     
匿名技术用户   2021-1-2 11:32   11   0

利用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编码保存文本

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP