Below are my code used to generate csv file.
My problem is UTF-8 characters are not coming correctly.
even I tried iconv also, but no result.
PHP CODE
-----------------
$con = mysql_connect('localhost','root','');$db_selected = mysql_select_db('test',$con); mysql_query(“SET NAMES utf8”);$qry_res = mysql_query(“SELECT * FROM table 2
“);
$filename = "test.csv";
$fp = fopen('php://output', 'w');
//$header = array('id','name');
$header = array("Id","Name");
header('Content-type: application/csv;charset=utf-8');
header('Content-Disposition: attachment; filename='.$filename);
fputcsv($fp, $header);
while($data = mysql_fetch_row($qry_res)){
fputcsv($fp, $data);
}
exit;
------------------------------------------
Table value:
-----------------------
Id Name
2 traducción de idiomas
3 תרגום שפות
4 language translation
7 Tłumaczenie na język
Result:
Id Name
2 traducción de idiomas
3 ????? ????
4 language translation
7 T?umaczenie na j?zyk
Thanks in advance.
3条答案
按热度按时间ev7lccsx1#
尝试在标题后添加以下内容:
7kjnsjlb2#
如果您的原始数据是UTF-8,将数据导出为CSV / Excel可读的最佳方法是转换数据。
这对我很有效。
lztngnrs3#
假设数据库中的数据是UTF,那么您需要修改生成文档的方式。
在我的代码中,我使用iconv将一个裸echo替换为一个修改后的echo:
Excel采用ISO。需要一个显式的指令将其转储为UTF。每次都很管用。