我遇到的问题是将数据从utf8 mysql数据库导出到带有PHPExcel的excel表并保留中文字符。我的mysql数据库是utf8,里面有很多中文字符,我将这些数据导出到多页xls文件(excel5)中,每次导出汉字变成“?”。我已经尝试过utf8_encode()但它对我不起作用。我也尝试将输出更改为excel2007,认为这将是一个excel5编写器问题。
有没有办法让中文字符正确导出? 我是否必须制作整个php文件utf8?如果是这样,我该怎么做呢?
以下是我遇到的问题:
$res2 = mysql_query("SHOW COLUMNS FROM ".$sheetnametemp);
while($row2 = mysql_fetch_array($res2, MYSQL_NUM)) {
$counter = 2;
$cell = $coltemp;
$cell .= $counter;
$objPHPExcel->getActiveSheet()->SetCellValue($cell, $row2[0]);
$result = mysql_query("SELECT * FROM ".$sheetnametemp);
while($row = mysql_fetch_array($result))
{
$counter++;
$cell2 = $coltemp;
$cell2 .= $counter;
utf8_encode($row[$row2[0]]);
echo "<br />";
$objPHPExcel->getActiveSheet()->SetCellValue($cell2,utf8_encode($row[$row2[0]]));
}
我需要使用这些中文字符,因为它是一个多语言的目录数据库,因此将其更改为英语无济于事。此外,如果该信息对您有帮助,我目前正在使用Xampp的Mac上。
答案 0 :(得分:4)
设置执行“SET NAMES utf8”或mysql_set_charset(“UTF8”,$ conn);确保您与数据库的连接使用UTF-8。
您可以使用echo mysql_client_encoding($ conn);
测试连接确保您不再尝试调用utf8_encode()。
注意:Excel文件使用代码页来标识文件中使用的字符集,但PHPExcel在内部将该代码页设置为UTF-8的硬编码值,因此文件中的所有字符串内容都应为UTF- 8,Excel知道将MS Excel GUI中的工作表解释为UTF-8。如果您在Excel中查看电子表格时没有看到中文字符,请检查MS Excel中的语言设置以查看它是否配置为处理中文
信用:@Mark Baker。 再次感谢。