Source http://www.mwasif.com/2007/5/download-data-csv-using-php/
Solution worked for me
Danish Zahur said,
October 7, 2009 @ 7:23 pm
If your contents are in UTF-8 format, then no need to convert encoding. Just start your file/output stream with UTF-8 BOM after headers.
echo pack("CCC",0xef,0xbb,0xbf);
And header should contain encoding UTF-8
header( "Content-type: application/vnd.ms-excel; charset=UTF-8" );
It will work like charm because Excel will recognize file charset with BOM bytes.