我從UTF-8的Postgres數據庫中檢索數據。 db和client_connection設置是UTF-8。PHP生成Excel/CSV文件並以UTF-8發送
然後我發送2頭向訪問者:
header("Content-Type: application/msexcel");
header("Content-Disposition: $mode; filename=export.xls");
,並開始在CSV-方式輸出明文數據。這將作爲訪問者桌面上的簡單Excel文件打開。
$cols = array ("col1", "col2", "col3");
echo implode("\t", $cols)."\r\n";
工作正常,直到遇到像é,è等特殊字符。
我試圖改變我的CLIENT_ENCODING而從分貝的Latin-1,在大多數情況下,但不是所有的字符作品檢索數據。所以這不是一個解決方案。
我怎麼能發送輸出文件爲UTF-8?我不認爲將數據從db轉換爲latin-1是可能的,因爲char在latin-1中似乎是未知的...所以我需要Excel將文件視爲UTF-8
WebFlakeStudio:不在身邊可能的另一種方式:發送某些頭這樣Excel將知道它是打開該文件爲UTF-8? – user410932
@ user410932:否。使用HTTP傳輸文件,然後通過常規方式打開文件 - Excel不會下載文件,HTTP頭將無法訪問。 – Piskvor