有时候会遇到把日志或者其他信息导出来,最开始用的csv到没发现存在乱码的问题;
今天导license换成excel,发现里面的中文都乱码了,
把excel后缀 .xls 改成 .txt,用notepad++打开,能正常显示看了下编码,utf8;
想着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”;
}