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);