PHP Codeigniter force_downloadでのIE文字化け対応


■PHP Codeigniter

PHPのフレームワーク

■問題

download helper の[force_download]を使用し日本語ファイルをIEでダウンロードしようとすると文字化け

download.php
$file_path = '/data/てすと.csv';
force_download($file_path, null);

■対応

download.php
$file_path = '/data/てすと.csv';
$file_data = null;
$ua = $_SERVER['HTTP_USER_AGENT'];
if (strstr($ua, 'Trident') || strstr($ua, 'MSIE')) {
    /* IEの場合 */
    $file_data = file_get_contents($file_path);
    $file_name = basename($file_path);
    $file_path = mb_convert_encoding($file_name, 'SHIFT_JIS', 'UTF-8');
}
force_download($file_path, $file_data);

■さいごに

・自分用メモ
・IE対応はめんどくさい