fgetcsvで文字が消える

fgetcsvはシフトJISで正しく動作しない、というのは前に確認したことがあった(頭の片隅に残っていた)。再度調べたらダブルクォーテーションで値が囲われていない場合にエラーが出るらしい(自分で確認すればいいのだが、そもそもシフトJISのまま使うことがないので確認しない)。これはエクセルからエクスポートした際に問題になる。

しかし、じゃぁUTF-8やEUC-JPで問題が発生しないか、というとやっぱり発生する。サーバのロケールの設定に依存するため、使用する言語とロケールが合致していない場合、やはりダブルクォーテーションで囲われていない値があれば文字の欠落が発生する。

使用する言語が決まっているのであれば問題ない。setlocale関数で指定してやればいいから。

使用する言語が決まっていない場合(どんな言語で与えられるかわからない場合)、fgetcsvは使えない、という結論だ。

あー、やだやだ。

コメントを残す


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net