質問: fopen('data/data.csv','a'); flock($handle,LOCK_EX); fputcsv($handle,$title); fputcsv($handle,$vararray); flock($handle,LOCK_UN); fclose($handle); ``` というコードを書き、正常にcsvファイルに書き込みがされています。 この時にエンコードをUTF-8からShift_JISに変更したので、4で読み込みをした際に、文字化けしてしまいます。 ブラウザでエンコードをShift_JISに変更したら文字化けは消えましたので、読み込んだ時点でShift_JISのエンコードになっているのはわかったのですが、それをUTF-8に戻す術がわかりません...。 最初は`mb_convert_variables('SJIS-win', 'UTF-8', $変数);` で変更すればよいのかと思いましたが状況が変わらず `setlocale(LC_ALL, 'ja_JP.UTF-8');` というものも試してみましたが、こちらでもうまくいきませんでした。 現状は下記のコードですが、うまくいきません。 ``` '.$array[$i].''; //とりあえず出力 } } flock($fp, LOCK_UN); //ロック解除 fclose($fp); //ファイルを閉じる ?> ``` 詳しい方おりましたら、ご指摘いただければと思います。。 宜しくお願い致します。
回答: によると、 ``` string mb_convert_variables ( string $to_encoding , mixed $from_encoding , mixed &$vars [, mixed &$... ] ) ``` なので、`mb_convert_variables('UTF-8', 'SJIS-win', $変数);` ではないでしょうか