write utf-8 characters to file with fputcsv in php write utf-8 characters to file with fputcsv in php php php

write utf-8 characters to file with fputcsv in php


Try this:

$df = fopen($filepath, 'w');fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF));fputcsv($df, array($coupon->code, $discount->label));

the line fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF)); writes file header for correct encoding.


Try this also:

$df = fopen($filepath, 'w');$array = array($coupon->code, $discount->label);$array = array_map("utf8_decode", $array);fputcsv($df, $array);


If you want make a UTF-8 file for excel, use this simple solution:

$fp = fopen($filename, 'w');//add BOM to fix UTF-8 in Excel fputs($fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));

See the original answer here on the official PHP page.