PHPのfgetcsvで日本語が正しく取得できない場合

fgetcsv でデータを取ろうとしても
環境によって日本語が正しく取得できないことがあった。

ローカルの開発環境だとちゃんと取れるのに
本番サーバにアップすると変になる。

全然取れないのならまだわかるんだけど、
ちゃんと取れることもあれば
空っぽになることもあるという状態。

どうやらこれが原因だったらしく、

PHP: fgetcsv - Manual

注意: この関数はロケール設定を考慮します。もし LANG が例えば en_US.UTF-8 の場合、 ファイル中の 1 バイトエンコーディングは間違って読み込まれます。

ロケールを設定したらうまくいった。


setlocale(LC_ALL,'ja_JP.UTF-8');

Leave a Reply