PHP fgetcsvをすると日本語が消えてしまう

ショコラ
ショコラ

PHP fgetcsvをすると日本語が消えてしまう

ロケールが設定されていないのが原因のようです。

もっさん先輩
もっさん先輩

fgetcsv で読み込み基本の形は↓です。この時に $data の中の日本語が消えることがありました。

while (false !== ($data = fgetcsv($handle,null,"\t"))) {
  var_dump($data);
}

対策として setlocale を使います。(今回のシステムはEUC-JPなので)

setlocale(LC_ALL,'ja_JP.EUC-JP'); 

UTF-8なら↓で良いそうです。

setlocale(LC_ALL,'C');

↓合わせると、こんな感じです。

$handle = fopen('{ファイルを指定する}','r');
setlocale(LC_ALL,'ja_JP.EUC-JP'); 
while (false !== ($data = fgetcsv($handle,null,"\t"))) {
  var_dump($data);
}

以上

Scroll to Top