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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

Q&A

解決済

2回答

353閲覧

csvファイル js読み込み

退会済みユーザー

退会済みユーザー

総合スコア0

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

JavaScript

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

0グッド

0クリップ

投稿2019/04/16 05:14

編集2019/04/16 05:20

csvファイルを読み込んでjson化するライブラリを使っています。

https://www.npmjs.com/package/csvtojson

こちらで読み込むと、テキストの改行のうち、一番初めに来る改行が認識されません。
つまり

"あ


う"

という文字列が

"あい
う"

として取得されます。

しかも今このテラテイルの質問エディターにコピペして気付いたのですが。
ここにコピペした時も

"あい
う"

となりました。
この"あいう"を含む一行はこんな感じになってます。

1555390651197,true,0,0,"あ

う",,0,choices,false,1,あ,true,,0,false

でやっぱり今このエディターにコピぺした瞬間も

1555390651197,true,0,0,"あ
い
う",,0,choices,false,1,あ,true,,0,false

こうなりました。
何か原因が分かる方いらっしゃいますでしょうか。

ちなみに

"あ


い
う"

このように"あ"と"い"の後に空白の改行を入れると、初めて一回の改行として認識されます。
この場合は"あ"と"い"の間には2つの改行があると認識されて欲しいです...。

あと、csvtojson以外に試したライブラリは

fsと組み合わせるて使う

https://www.npmjs.com/package/csv-parse
https://www.npmjs.com/package/csv-parser です。

両方ともcsvtojsonと同じで1つ目の改行が認識されませんでした。


すみません、質問を投稿した瞬間にこのエディターで明示的につけた"あ"と"い"の間の改行も消えました。
何かおかしいです。
エディター上では以下の画像のように改行されてます。
これは一体なんなのでしょうか。

以下 エディターのスクショ
スクショ

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

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

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

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

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

guest

回答2

0

ベストアンサー

改行コードが不正なのだと思いますが・・・

  • 文字コードになにをつかっているか
  • 改行コードに何をつかっているか

精査し、場合によってはバイナリエディタで確認してみてください

投稿2019/04/16 05:26

yambejp

総合スコア114747

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

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

退会済みユーザー

退会済みユーザー

2019/04/16 05:32

原因分かりました、おっしゃる通りで、このcsvファイルを作成する時に文字コードを指定していなかったため、おかしなファイルになってたみたいです。 fs.writeFile(outputFilePath, csvStr, 'utf8') この第三引数をちゃんと'utf8'で指定してエクスポートしたら、そのファイルを読み込んだ結果は正常でした。 ありがとうございました。
guest

0

私は今回の質問の原因は、
「複数のOS用の改行コードが混ざってしまっている」とみています。
https://qiita.com/uhooi/items/dc74ff3434aecb17faa2

混ぜてしまうと
このファイルはどの改行コードとして判別すれば良いのかわかりにくくなります。

改行コードを視認出来る特殊なエディターを用いて改行コードが混ざっているか否かを確認してください。
そしてもし改行コードが混ざっているなら統一させてあげてください。

投稿2019/04/16 05:32

miyabi-sun

総合スコア21158

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

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

退会済みユーザー

退会済みユーザー

2019/04/16 05:35

miyabi-sun、いつもありがとうございます。 原因は、このcsvファイルを作成するコードで文字コードを指定していなかったためでした...。 fs.writeFile(outputFilePath, csvStr, 'utf8') ここの第3引数を忘れてしまってました...。
miyabi-sun

2019/04/16 05:44

b Node.jsやJavaScriptはUTF8しか基本的に扱わないはずなので、 ちょっと不自然ですね。 何にせよ解決したようで良かったです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問