JSでファイルをDL。ついでにSJISに変換(encoding.js)
javascriptでファイルをダウンロードさせる必要があった。しかもShift-JISに変換する必要もあった。
作成日:2020-01-07, 更新日:2020-01-07
基本
リンクタグにblobをセットさせる感じでいく。
文字コードの変換が不要な場合
▼HTML部
<a id="download" download="sample.txt">ダウンロード</a>
▼Script部
// DLさせるテキストをBLOBでファイルにする var str = 'こんにちは、今日は良い天気ですね!'; var blob = new Blob([str], {type: 'text/plain'}); // ▼コンソールに出力するときは、コメント解除 //var reader = new FileReader(); //reader.onload = function(){ // console.log(reader.result); //}; //reader.readAsText(blob); // href属性にblobをセット var aTag = document.getElementById('download'); aTag.href = window.URL.createObjectURL(blob);
文字コードをSJISに変換させる場合
▼HTML部
<a id="download" download="sample.txt">ダウンロード</a>
▼Script部
// DLさせるテキストをBLOBでファイルにする var str = 'こんにちは、今日は良い天気ですね!' + "\r\n" + 'そんなことはないですよ!' + "\r\n"; var toEnc = 'sjis'; var codes = Encoding.stringToCode(str); var shiftJisCodeList = Encoding.convert(codes, toEnc, 'Unicode'); var uInt8List = new Uint8Array(shiftJisCodeList); var blob = new Blob([uInt8List], {type: 'text/plain'}); // ▼コンソールに出力するときは、コメント解除 //var reader = new FileReader(); //reader.onload = function(){ // console.log(reader.result); //}; //reader.readAsText(blob); // href属性にblobをセット var aTag = document.getElementById('download'); aTag.href = window.URL.createObjectURL(blob);