qq_30392833
qq_30392833
采纳率0%
2016-04-20 01:58 阅读 2.6k

html5下a标签,如何定义下载文件txt的编码方式

要用a标签的download属性,下载一个txt的文件,文件内容是js下的字符串,然后本人用blob装成二进制流,在用URL.createObjectURL生成href地址。然后赋给a标签。但是每次遇到字符串中有中文,就会出现txt文本编码自动变成utf-8,本人想要的是ansi格式的txt文件。

 <!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<script>
    function downloadFile(fileName, content){
        var aLink = document.createElement('a');
        var blob = new Blob([content],{type:"text/bath;charset=gbk"});
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent("click", false, false);//initEvent 不加后两个参数在FF下会报错, 感谢 Barret Lee 的反馈
        aLink.download = fileName;
      /* aLink.href ='data:text/bath;charset=gbk,'+encodeURI(content);*/
       aLink.href =URL.createObjectURL(blob);
       /* aLink.chartset="GBK";
        aLink.hreflang="zh";*/
        console.log(aLink.href);
        aLink.dispatchEvent(evt);
    }
    var str ="dsaklfda你好吗";
    downloadFile('lalala.bat',str)
</script>
</body>
</html>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • qq_30392833 qq_30392833 2016-05-05 09:48

    木有大神吗?又去搜索了一些文章,发现是a标签在将数据流转成文件的时候,自动选择了utf8。

    点赞 评论 复制链接分享
  • tianyer tianyer 2016-08-09 07:01

    encodeURIComponent默认使用的是 UTF-8 编码规则来编的,你用base64编码测试一下看看会不会符合你要求。

    点赞 评论 复制链接分享
  • tianyer tianyer 2016-08-09 07:22

    data:text/plain;base64,ZHNha2xmZGHE47rD0b07

    等同:dsaklfda你好呀;

    测试了,base64编码下载就是你需求的ANSI格式了。

    点赞 评论 复制链接分享

相关推荐