問題 fgetcsv()でShift_JISのCSVファイルをそのまま読み取るとき、「”(ダブルクォーテーション)」に囲まれていないマルチバイト文字があると、正常に読み取れない。 「”名前”,”住所”,”岐阜”,”愛知”,”東京”」は読めるけど、「名前,住所,岐阜,愛知,東京」は読めない。 改行が含まれている部分は、「”」で囲まないといけないので、きれいに読み取れるのだが、「名前,住所,岐阜,愛知,東京」が読めないのが不思議だ。 なんで? 答え phpのソースを読むと、C言語のmblen()がOSのロケールに依存するというところに行き着くが、マニュアルにもちゃんと「ロケール設定を考慮します」と書いてある。 注意: この関数はロケール設定を考慮します。もし LANG が例えば en_US.UTF-8 の場合、 ファイル中の 1 バイトエンコーディングは間違って読み込まれます。 つまり、OSの