在php中使用fputcsv将utf-8字符写入文件

时间:2014-02-24 13:01:10

标签: php encoding character-encoding

我想在PHP中使用CSV文件编写波斯字符,我使用的是fputcsv函数但是如何使用fputcsv将UTF-8字符写入CSV文件?

我的部分代码:

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

3 个答案:

答案 0 :(得分:108)

试试这个:

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

fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF));写入文件头以进行正确编码。

答案 1 :(得分:22)

也可以尝试:

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

答案 2 :(得分:0)

如果要为excel创建UTF-8文件,请使用以下简单解决方案:

$fp = fopen($filename, 'w');

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

在官方PHP页面上查看原始答案here