这是将php导出为excel的简单代码
$filename ="excelreport.xls";
$contents = "русский \t testdata2 \t testdata3 \t \n";
header('Content-type: application/ms-excel');
header('Content-Disposition: attachment; filename='.$filename);
echo $contents;
有русский
但在excel中显示为ļ»æŃ€ŃŃŃŠŗŠøŠ¹
搜索已找到Excel无法识别UTF-8的信息。找到了好几种方法,但没有一种方法
尝试echo "\xEF\xBB\xBF";
(无变化)
然后在Excel中$contents = mb_convert_encoding($contents, "SJIS","UTF-8");
获取„‚„…„„„{„y„z
然后在Excel中$contents = mb_convert_encoding($contents, "UTF8", "JIS, eucjp-win, sjis-win");
获取Ń€ŃŃŃŠŗŠøŠ¹
这个正确显示俄语字符的php-excel类http://code.google.com/p/php-excel/source/browse/branches/class-excel-xml.inc.php?r=9,但代码的哪一部分可以实现...? php-excel类不使用,因为需要我能理解和修改的简单代码。
更好地尝试了这个echo chr(255).chr(254).iconv("UTF-8", "UTF-16LE//IGNORE", $contents);
。但是第一个excel行是好的русский testdata2 testdata3
但是第二个是胑菑臑臑뫐룐말ठ琠獥摴瑡㉡ठ琠獥摴瑡㍡ठਠ
是什么以及如何避免它...
解决方案 哦,至少对我来说非常简单的解决方案
$filename ="excelreport.xls";
$contents = "русский \t testdata2 \t testdata3 \t \n";
header('Content-type: application/ms-excel');
header('Content-Disposition: attachment; filename='.$filename);
echo chr(255).chr(254).iconv("UTF-8", "UTF-16LE//IGNORE", $contents);
唯一的问题。如果人们提供了许多不同的方法来获得解决方案并且并非所有方法都有效,那是否意味着根据用户计算机配置(例如区域设置),一个解决方案可能有效,而其他解决方案无效?