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

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

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

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

3回答

10641閲覧

CSVファイルをjQueryで読み込むと文字化けする

teramasa

総合スコア76

CSV

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

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

1クリップ

投稿2016/08/25 11:00

###前提・実現したいこと
SJISのCSVをJavacript内(UTF-8)で正常に読み込むことが目的
csvファイルは必ずSJISでないといけない制約があります

###発生している問題・エラーメッセージ
SJISのcsvをjQueryで読み込んだところ文字化けしてしまった

###該当のCSV

csv

1id,住所,名前 21,東京都,山田花子

###試したこと
日本の方がencoding.jsという変換ツールを作ってくれたみたいなのですが、
ファイル容量が200KB以上ある重いプラグインのようで、使うのを躊躇しています↓
encoding.js

何か良い対策があれば教えていただけないでしょうか。よろしくお願いいたします。

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

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

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

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

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

Lhankor_Mhy

2016/08/25 11:19

CSVファイルはどのように読みこんでいるのでしょうか。コードを提示することはできますか?
guest

回答3

0

CSVは制約があるということで、JavaScript側の制約がなければ、SJISで処理すれば文字化け等気にしなくて済みます。

以下、参考になりますか?
jQueryでShiftJISエンコードされたCSVを処理する

投稿2016/08/26 01:27

moonphase

総合スコア6621

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

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

teramasa

2016/08/27 04:08

moonphaseさま ご回答ありがとうございます!参考URLの1はNGとして、やはり2のサーバーサイドで処理するしかなさそうですね。一旦ユーザー側にテーブル表示しなくてはいけないので、できればそのまま表示したかったのですが、一度サーバーに送ってJSONとかで戻してもらうしかないですね。
guest

0

まず、シフトJISとUnicodeは文字の並びが全く違いますし、JavaScriptの世界にはUnicode以外の文字列表現が存在しませんので、JavaScriptレベルで変換しようとすれば、6000文字以上あるシフトJISの文字がどうUnicodeに対応するのかのテーブルが必要となります。

ということで、JavaScript外で対応することを考えると、CSVファイルを置いたサーバからContent-typeのcharsetをシフトJISとして正しく送信させられれば、ブラウザがきちんとシフトJISを解釈してくれるようになります(実際にする設定はサーバ環境次第ですが)。

投稿2016/08/25 11:23

maisumakun

総合スコア145183

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

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

teramasa

2016/08/27 04:10

maisumakunさま ご回答ありがとうございます!文字コードのエンコーディング自体がそもそも重たい処理なのですね、ちょっとなめていた感があります・・。 (どうりでencoding.jsも200KB以上あるわけで) サーバーサイドで処理して送り返す方法しかなさそうですね。できればそのままJSでテーブルにしてユーザー側に表示したかったのですが。
guest

0

CSVをクライアント側(ブラウザ側)で処理しなければならないという制約はありますでしょうか?

文字コード変換はそれぞれの文字コードで文字マッピングが違うのでコストがかかるのは致し方ない気がします。

冒頭質問したような制約が特にないのでしたら、個人的にはサーバサイドで処理するのが一番良い(実装が楽)かと思います。

投稿2016/08/25 11:20

編集2016/08/25 11:22
Panzer_vor

総合スコア1636

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

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

teramasa

2016/08/27 04:12

KotoriMaturiさま ご回答ありがとうございます! 書き忘れており申し訳ありません、クライアント側で必ず処理をしなくてはいけないという制約はないのですが、クライアント側にテーブルで表示させるので、サーバーサイドで処理すると二度手間になるなと思った次第です。フロントでのエンコーディング処理が重たくなる以上は致し方ないのかもですね・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問