Home > PHP > PHPでCSVファイル読み込みでエラー

PHPでCSVファイル読み込みでエラー

  • Posted by: zaru
  • 2007年5月23日 19:31
  • PHP

カンマ区切りのCSVファイルをアップロードし、fgetcsv() を使って解析するスクリプトを組んでいたら色々なことではまってしまった。

そのエラー内容と、対処法。

おこった現象

  • 文字コードShift_JISで、文字列に「機能」が入っているとそこで区切られてしまう

これは「能」の2バイト目が「2c」でエスケープしたと判断されてしまうのが原因。Shift_JISを使っているとよく会うトラブル。普段ならこういったトラブルを避けるためにShift_JISは使わないのだが、一般のユーザが利用するシステムなので文字コードのことを意識させないようにしたら、はまってしまった。

こうやって対処した

結論から書くと、アップロードしたCSVファイルをEUC-JPに変換し一時ファイルとして保存。そして、fgetcsv() を使ってデータを区切った。

どうも昔から fgetcsv() にはトラブルにあうなぁ。

当時、ここら辺の流れを追っていたから fgetcsv() を使わないようにして、タブ区切りファイルで対応していたのだけど、やっぱり一般的なCSVファイルにきちんと対応していないとダメだね。

Windows ExcelのCSVフォーマットが一般的か…というと微妙だが。

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://blog.tofu-kun.org/mt-tb.cgi/324
Listed below are links to weblogs that reference
PHPでCSVファイル読み込みでエラー from Webプログラマー+WebデザイナーなZARU日記

Home > PHP > PHPでCSVファイル読み込みでエラー

Profile

zaru

Name : zaru

Webプログラマ+Webデザイナで、Webディレクタやってます。Twitterやっているので、ぜひフォローしてやってくださいませ。Twitter - zaru。また、そのほかのプロフィールについては、iddy - zaruを見てください。

Search
Feeds
Others

Return to page top