株式会社AZU (アズ) | 長野市のWEBシステム・業務システム・WEBサイト制作会社

+ MENU

fgetcsv CSV文字化け

以下の関数でCSVを取得すると、文字化けするときがある。

関数
fgetcsv: ファイルポインタから行を取得し、CSVフィールドを処理する。
str_getcsv: CSV 文字列をパースして配列に格納する。

PHP マニュアル: fgetcsv
fgetcsvのマニュアルに、以下の注意が書いてある。

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

PHP マニュアル: setlocale
setlocaleを使うと、ロケール情報を設定できる。
文字化けが直る。

setlocale(LC_ALL, ‘ja_JP.UTF-8’);

setlocaleの後で、fgetcsvを使う。

[2017/06/26]
このエントリーをはてなブックマークに追加