web-dev-qa-db-ja.com

PHPでfputcsvを使用してファイルにutf-8文字を書き込む

PHPでCSVファイルにペルシャ文字を書きたいのですが、fputcsv関数を使用していますが、fputcsvでCSVファイルにUTF-8文字を書き込むにはどうすればよいですか?

私のコードの一部:

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

これを試して:

_$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));は、正しいエンコードのためにファイルヘッダーを書き込みます。

119
Hardy

これも試してください:

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

Excel用のUTF-8ファイルを作成する場合は、次の簡単なソリューションを使用します。

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

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

元の回答を参照してください here 公式のPHPページ。

0
Syno