2013-12-20 100 views
0
擅長

我做了一個CSV爲例:導出CSV在PHP

Type, जिल्ला शिक्षा कार्यालय डडेलधुरा,NGOI,NGO Request,21,0,0 Response, 4,0,0 

,它有UTF-8字符,我想其導出爲Excel,以便我張貼,並導出到Excel和

header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
header("Content-Type: text/csv; charset=utf-8"); 
header('Content-Disposition: attachment; filename=file.csv'); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Pragma: public'); 
print $_POST['csv_data'];exit; 

的CSV出口很好地練成,但字符編碼不轉換,顯示是這樣的:指幾個問題上的計算器我做了如下之後जिलà¥à¤²à¤¾ शिकà¥à¤·à¤¾ कारà¥à¤¯à¤¾à¤²à¤¯ डडेलधà¥à¤°à¤¾,當我加入

echo "\xEF\xBB\xBF"; 

的字符編碼被轉換,但數據顯示在像這樣的柱:

Type, जिल्ला शिक्षा कार्यालय डडेलधुरा,NGOI,NGO 
Request,21,0,0 
Response, 4,0,0 
+0

使用[PHPExcel](http://phpexcel.codeplex.com/)!自制解決方案肯定沒有用處。 – Sliq

+0

你可以嘗試添加'函數utf8_encode()'的'$ _ POST [ 'csv_data']' – JackPoint

+0

@JackPoint結果就這樣產生了'謾¤œÃ¤¿Ã¤²ÃA¥AA¤²Ã ¤ÂÂÂÂÃÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïïï ÂÂÂÂÂÂÂÂÂÂÃÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÉ – Robz

回答

1

UTF8 + CSV + Excel中已知是有問題的組合。 Excel只是不擅長導入CSV。

有一件事你應該嘗試是在您的CSV文件的開頭添加一個UTF8 BOM character;這可能有助於Excel計算出如何處理它。

我很樂觀,這將幫助,但如果沒有,您可能需要使用CSV這個重新思考。

您可以使用的其他選項(而不是CSV)包括XML,並從PHP內部創建一個實際的Excel文件(有很多可用的庫,最好的文件是PHPExcel)。

希望有所幫助。