想請問我想要匯出csv檔但匯出的檔案一直出現亂碼...
<form action="export.php" method="post">
<input type="submit" name="export" value="匯出資料" class="btn-small-blue-style">
</form>
有加了這段程式碼echo "\xEF\xBB\xBF";
但匯出的資料中文還是亂碼,
想請問應該如何解決?
下面是export.php
if (isset($_POST["export"])) {
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
echo "\xEF\xBB\xBF";
$output = fopen("php://output", "a");
fputcsv($output, array('給號時間', '訂單編號', '委刊單編號', '廣告主', '活動名稱', '委刊公司', '行業別', '組別', '負責業務', '預算', '計價方式'));
}
SORRY更正我的做法,這就正常了
<?php
setlocale(LC_ALL,'zh_TW');
header('Content-Type: text/csv;');
header('Content-Disposition: attachment; filename=data.csv');
$a=array('給號時間', '訂單編號', '委刊單編號', '廣告主', '活動名稱', '委刊公司', '行業別', '組別', '負責業務', '預算', '計價方式');
echo iconv("UTF-8","big5",preg_replace("/[\[\]\"]/","", json_encode($a,JSON_UNESCAPED_UNICODE)));
已更正
下載CSV測試點 http://music.mihodb.com/tts/test.php
程式內容縮排一下比較好理解
<?php
setlocale(LC_ALL,'zh_TW');
header('Content-Type: text/csv;');
header('Content-Disposition: attachment; filename=data.csv');
$a=array('給號時間', '訂單編號', '委刊單編號', '廣告主', '活動名稱', '委刊公司', '行業別', '組別', '負責業務', '預算', '計價方式');
echo
iconv("UTF-8","big5",
preg_replace("/[\[\]\"]/","",
json_encode(
$a,
JSON_UNESCAPED_UNICODE
)
)
);
如果是CSV的話,還要看你用什麼工具打開。
你可以先用文字編輯器,開啟看看,內容是不是已經如你說的輸出是 UTF-8 了。
接著是開啟 CSV 檔的軟體,Microsoft Excel 並不是所有版本都直接支援 utf-8 格式的 csv 檔案。