我正在使用下面的代碼將我的MySQL數據導出到.CSV文件中。所有工作正常,但是當我試圖導出這些字母ě, š, č, ř, ž, ý, á, í, é
(捷克字母)時,字母ě, ř, č
導出爲?
。其他字母可以正常導出。SQL - > CSV(utf8-BOM頭部無法正常工作)
請問您能幫我解決這個問題嗎?
<?php
/*******EDIT LINES 3-8*******/
$DB_Server = "xxx"; //MySQL Server
$DB_Username = "xxx"; //MySQL Username
$DB_Password = "xxx"; //MySQL Password
$DB_DBName = "xxx"; //MySQL Database Name
$DB_TBLName = "wp_comments"; //MySQL Table Name
$DB_Query = "comment_author, comment_content"; //MySQL Query (what to select from db, you can use * for all)
$filename = "excelfilename"; //File Name
$filename_columns = array("Autor", "Content"); //File Name of columns
/*******YOU DO NOT NEED TO EDIT ANYTHING BELOW THIS LINE*******/
//headers
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Content-Description: File Transfer');
header('Content-Encoding: UTF-8');
header('Content-Type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment; filename='.$filename.'.csv;');
header('Content-Transfer-Encoding: binary');
//create MySQL connection
mysql_connect($DB_Server,$DB_Username,$DB_Password);
mysql_select_db($DB_DBName);
$sql = "SELECT $DB_Query FROM $DB_TBLName";
$result = mysql_query($sql);
$fh = fopen('php://output', 'w');
$fp = fwrite($fh, $bom =(chr(0xEF) . chr(0xBB) . chr(0xBF))); // Write UTF-8 BOM
if($fp)
{
fwrite($fh, "sep=\t" . PHP_EOL); // Hint for MS Excel
while($row = mysql_fetch_row($result)) {
fputcsv($fh, $row, "\t");
}
}
fclose($fh);
嘗試使用此問題中的類將所有字符串轉換爲utf-8。 http://stackoverflow.com/questions/23140358/php-glob-directory-utf8/23140525#23140525 –
不工作在男人:/ – pes502
@eggyal是的我相信,這裏有一些截圖:[數據庫內容](http ://i.imgur.com/zlx2vLc.png)和[導出數據庫內容](http://i.imgur.com/zWCit3A.png) – pes502