我一直在這一段時間。 我試圖從一個PHP腳本(即從數據庫中獲取數據)創建一個.csv文件。 我的問題是特殊字符顯示不正確。php到csv和特殊字符
奇怪的是,來自數據庫的特殊字符顯示正確,但他的事情是我需要添加某些字符的條目。
例如,數據庫返回「Humidité」(法語爲溼度)。 在導出的.csv中正確顯示。
但可以說,我的字符串從我的PHP腳本
$member->humidity . ': 10% à 20%';
在CSV添加到它,我會看到
Humidité: 10% [weird characters] 20%
所以在「E」從humidité是好的,但我不看不到我在PHP中添加的「à」。
我的頭似乎還行,因爲一些特殊字符正確顯示
$data = the whole csv file in a string
header('Content-Encoding: UTF-8');
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');
header("Content-Length: " . strlen($data));
echo "\xEF\xBB\xBF"; // UTF-8 BOM
echo $data;
所以我的猜測是,這個問題是來自我的Apache服務器。
當我發現this我在我的php.ini中更改了我的default_charset = "utf-8"
,並在我的httpd.conf中添加了AddDefaultCharset UTF-8
bu,但未解決問題。
任何想法? 謝謝!
你在mysql中的表是UTF8格式嗎? –
@TuhinSubhraDey不,他們在「latin1_swedish_ci」 –
嘗試改變它在UTF 8一般ci然後保存您的數據和其他東西.. –