CSVのデータを実装しているのですが以下のコードになります。
function exportCSV(records) { let data = records.map((record)=>record.join('\t')}).join('\r\n'); csv_string = "\ufeff" + data; //UTF-16 var array = []; for (var i=0; i<csv_string.length; i++){ array.push(csv_string.charCodeAt(i)); } var csv_contents = new Uint16Array(array); var blob = new Blob([csv_contents] , { type: "text/csv;charset=utf-16;" }); let url = (window.URL || window.webkitURL).createObjectURL(blob); let link = document.createElement('a'); link.download = 'result.csv'; link.href = url; document.body.appendChild(link); link.click(); document.body.removeChild(link); };
このコードをUTF-16のBOMありにしたいのですがやり方が分からず教えて欲しいです。
ファイル形式が8進数/16進数とは意味がわかりません。具体的にどのような状態になっているのですか?
なんとなくUTF-8/-16を誤解しているのかとも思いますがUTF-8になる状況とも思えず不思議です。
すみません、訂正前に質問入ったみたいです。
UTF-16に対応する方法をやったのですが、空になってしまうという話です。
> 空になってしまう
なるほど、UTF-8になってしまうと言っているのかと思ったのですが、空になるのですか。
するとUTF-8はこの話のどこに出てくるのですか?
また、「空」とはどのような状況でしょうか。
ファイルのダウンロードはできるがファイルサイズが0ということですか?
すみません、返答遅れてしまいました。
UTF-8は変更前に対応していたものです。なので関係ないです。
上のコードではファイルダウンロードはできて、中身は000になっていて、文字コードはHexisadesimelになっている状態です。
回答2件
あなたの回答
tips
プレビュー