php 导出excel,中文乱码问题

有时候会遇到把日志或者其他信息导出来,最开始用的csv到没发现存在乱码的问题;

今天导license换成excel,发现里面的中文都乱码了,

unicode

把excel后缀 .xls 改成 .txt,用notepad++打开,能正常显示看了下编码,utf8;

2

想着header加上编码应该就没问题了:

header("Content-type:application/vnd.ms-excel;charset=UTF-8");

测试了依然乱码,试了下用notepad++将文件编码转成ascii码后,wps打开中文显示正常;只好在输出汉字的地方加上编码转换了。
iconv("UTF-8", "GBK", $lic['company'])."\t";
再次测试,正常了;发现不改后缀notepad++也能打开xls,对excel文件格式不了解,不去研究了。

附上php导出excel比较简单的方法,不依赖第三方类或库:
$file_name = "info.xls";
//ob_end_clean();
header("Content-type:application/vnd.ms-excel;charset=UTF-8");
header("Content-Disposition:attachment;filename=".$file_name);
echo "serial number"."\t"."product type\tcompany\ttime\t\n";

$lic_value = sd_get_licenses();//

foreach ($lic_value as $lic){
echo $lic[‘sn’].”\t”;
$label = LicenseCode::getProductLabelByProduct($lic[‘product’]);//
echo $label.”\t”;
echo iconv(“UTF-8”, “GBK”, $lic[‘company’]).”\t”;
echo $lic[‘time’].”\t”;
echo “\n”;
}

 

未经允许不得转载:ganlei的个人博客 » php 导出excel,中文乱码问题

赞 (1)
分享到:更多 ()