質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

684閲覧

htmlで作成した配列をcsvファイルにしたいが文字化けする。

meJ15

総合スコア55

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/11/20 06:51

前提・実現したいこと

参考URL

このサイトを参考に
ローカルのhtmlで作成した配列に入ってるデータをcsvにいれて、ダウンロードしたいと考えています。
しかし開いたcsvファイルが下のようになります。
イメージ説明

ちなみに配列に入ってるデータは下のようになっているはずです。
イメージ説明

なにが原因なのでしょうか_

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

<script> var arr = new Array(); value = data.getInt16(0);//2Byteの場合のフォーマット value2 = data.getInt16(2); arr.push([value,value2]) value = data.getInt16(0);//2Byteの場合のフォーマット value2 = data.getInt16(2); arr.push([value,value2]) // (1) BOM の用意 var bom = new Uint8Array([0xEF, 0xBB, 0xBF]); // (2) CSV データの用意 var csv_data =arr.map(function(l){return l.join(',')}).join('\r\n'); // (3) BOM 付き CSV ファイルの元となる Blob を作成 var blob = new Blob([bom, csv_data], { type: 'text/csv' }); // (4) createObjectURL を使って Blob URL を構築 var url = (window.URL || window.webkitURL).createObjectURL(blob); // (5) Blob URL をダウンロードさせるリンクを作る var a = document.getElementById('js-download'); a.download = '2data.csv'; a.href = url; </script>

試したこと

// (1) BOM の用意
var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
参考URLは3列で、私のは2列分のデータしかないので
var bom = new Uint8Array([0xEF, 0xBB]);
とすると出力されるcsvファイルの中身が・
だけになりました。
arrの値はconsole.table(arr)で確認できています。

補足情報(FW/ツールのバージョンなど)

google chrome を使っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

// (1) BOM の用意
var bom = new Uint8Array([0xEF, 0xBB, 0xBF]);
// (2) CSV データの用意
var csv_data =arr.map(function(l){return l.join(',')}).join('\r\n');
// (3) BOM 付き CSV ファイルの元となる Blob を作成
var blob = new Blob([bom, csv_data], { type: 'text/csv' });
// (4) createObjectURL を使って Blob URL を構築
var url = (window.URL || window.webkitURL).createObjectURL(blob);
// (5) Blob URL をダウンロードさせるリンクを作る
var a = document.getElementById('js-download');
a.download = '2data.csv';
a.href = url;
この処理を書く場所を変えたらうまく動作しました

投稿2018/11/20 07:31

meJ15

総合スコア55

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問