2013-10-12 116 views
0

我有一個MySQL數據庫和整理latin1_swidish_ci。我有2個問題。MySQL和PHPExcel中的UTF8字符問題

  1. 當我回應它時,三角形等奇怪的字符出現在我的網頁中。
  2. 當我使用PHPEXCEL將數據導出到Excel文件時,像é這樣的字符未被填充到單元格中。 é後的所有字符都將從字符串中刪除!

導出腳本:

header('Content-Type: application/vnd.ms-excel'); 
header("Content-Disposition: attachment; filename=\"$filename\""); 
header('Cache-Control: max-age=0'); 
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); 
$objWriter->save('php://output'); 

的問題只發生在服務器!它在我的Localhost中工作得很好。請建議。

+0

您需要確保存儲在單元格中的所有字符串值都是UTF-8字符串;如果您的數據庫以其他字符集存儲值,則需要使用[iconv()](http://www.php.net/manual/en/function.iconv.php)或[mb_convert_encoding()]( http://www.php.net/manual/en/function.mb-convert-encoding.php)首先將它們轉換爲UTF-8 –

回答

0

你的頁面是如何編碼的?如果您的數據庫使用latin1_swedish_ci時HTML編碼爲UTF8,那麼您將不時發生這種情況。

+0

是的,我的頁面被編碼爲UTF8。我該怎麼辦 ? –

+0

你可以嘗試在你的輸入中使用'utf8_decode',然後將它發送到你的數據庫http://us.php.net/manual/en/function.utf8-decode.php還有'iconv' http://us.php .net/manual/en/function.iconv.php – Machavity

+0

問題是我沒有控制DB數據。它已經在那裏。 –

0

問題是我在數據庫連接和元標記中使用UTF8編碼。在數據庫歸類中,它是latin1_swidish_ci

所以我剛剛刪除了UTF8聲明和它的工作很好。感謝大家。