напишите символы utf-8 в файл с fputcsv на php


Я хочу попробовать написать персидский символ в CSV-файле на PHP, я использую функцию fputcsv, но как записать символ UTF-8 в CSV-файл с помощью fputcsv?

Часть моего кода:

$df = fopen($filepath, 'w');
fputcsv($df, array($coupon->code, $discount->label));
Author: Benjamin, 2014-02-24

3 answers

Попробуйте это:

$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)); записывает заголовок файла для правильной кодировки.

 91
Author: Hardy, 2014-02-24 14:50:11

Попробуйте также следующее:

$df = fopen($filepath, 'w');
$array = array($coupon->code, $discount->label);
$array = array_map("utf8_decode", $array);
fputcsv($df, $array);
 22
Author: robssanches, 2014-10-23 12:43:35

Если вы хотите создать файл UTF-8 для excel, используйте это простое решение:

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

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

Смотрите оригинальный ответ здесь на официальной странице PHP.

 0
Author: Syno, 2018-08-27 07:57:34