2012-04-28 4 views
2

PHPで.csvファイルをエクスポートする必要があります。私はそれを行うためのコードの下に使用:utf-8文字用にPHPでCSVをエクスポート

header('Content-Encoding: UTF-8'); 
header('Content-type: application/csv; charset=UTF-8'); 
header("Content-Disposition: attachment; filename=$fn"); 
echo "\xEF\xBB\xBF"; // UTF-8 BOM 
print($csv); 

$csvは、いくつかのペルシャ文字が含まれています。 ms excelでエクスポートしたファイルを開くと、間違った文字が表示されました。メモ帳でファイルを開いたときに文字が正しく表示されました。 どうすればこの問題を解決できますか?

+0

はutf8のオリジナルコンテンツですか? $ csvでutf8_encodeを使用すると、それは役に立ちますか? – scott

+0

オリジナルのコンテンツはutf8です。しかし、私は[]のように、それを定義するためにPHPファイル内にタグを使用していませんでした。 –

+0

。私はそのようなことで過去に問題を抱えていました。すべての時点で、それはutf8(つまり、データベースをロードしているデータベース)にあるはずです。このhttp://drupal.org/node/172996もまた、csvファイルに固有の問題である可能性があります。ある人が.txtとして保存することを提案し、.txtがutf8とcsvのみをサポートしているのでExcelのcsvとして.txtを開くことを提案している。ascii – scott

答えて

1

ここで私はそれをしました。

header('Content-Encoding: UTF-8');

header('Content-type: text/csv; charset=UTF-8');

header("Content-Disposition: attachment; filename=file.csv");

header("Pragma: no-cache");

header("Expires: 0");

header('Content-Transfer-Encoding: binary');

echo "\xEF\xBB\xBF";

以前は、ガベージ文字が正しく表示されていたため、データが正しくエクスポートされました。

関連する問題