通过从mysql表中获取数据,我正在生成csv文件并上传到一些ftp文件夹。但其他人使用此csv文件从ftp端说,它是在ANSI编码。如何将其更改为UTF-8编码?为此,我使用下面的代码。
header('Content-Encoding: utf-8');
header('Content-Type: text/csv; charset=utf-8');
$fh1 = fopen($current_csv_name, 'w+');
foreach($csv_data as $curl_response)
{
fputs($fh1, implode($curl_response, ';')."\n");
}
fclose($fh1);
当我下载文件并在记事本中打开并单击保存时,它总是显示编码为ASNI。我哪里做错了?任何帮助将不胜感激。
2条答案
按热度按时间6uxekuva1#
我相信你需要在文件的开头添加BOM(字节顺序标记),否则,文件系统将始终假设你的字符集默认为ANSI。试着这样做:
bwitn5fc2#
假设数据库中的数据是UTF,那么您需要修改生成文档的方式。
在我的代码中,我使用iconv将一个裸echo替换为一个修改后的echo: