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个回答

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

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

data:text/plain;base64,ZHNha2xmZGHE47rD0b07

等同:dsaklfda你好呀;

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问