如何显示从php导出到制表符分隔(如excel)文件的俄文字符
下面是将php导出到excel的简单代码如何显示从php导出到制表符分隔(如excel)文件的俄文字符,php,excel,encoding,export,Php,Excel,Encoding,Export,下面是将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中显示为
$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;不变
然后$contents=mb_convert_编码$contents,SJIS,UTF-8;在excel中获取“y”z
然后$contents=mbŃconvertêu编码$contents、UTF8、JIS、eucjp-win、sjis-win;在excel中获取
这个php excel类可以正确显示俄文字符,但它是代码的哪一部分…?php excel类不使用,因为需要简单的代码,我可以理解和修改
尝试了这个echo chr255.chr254.iconvUTF-8,UTF-16LE//IGNORE,$contents;更好的方法。但是第一行excel是ok的
但第二,这是什么胑菑臑臑뫐룐말ठ琠獥摴瑡㉡ठ琠獥摴瑡㍡ठਠ 如何避免它
解决方案
哦,非常简单的解决方案,至少对我来说是这样
$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);
唯一的问题。如果人们提供了这么多不同的方法来获取解决方案,但并非所有方法都有效,这是否意味着根据用户计算机配置(例如区域设置),一个解决方案可能有效,另一个则无效?这不是xls文件,而是一个选项卡分隔的文件,您将返回到客户端。我可以将其作为excel打开。好的,我将l修改问题标题您使用的是一种非常奇怪的文件格式。为什么不将其保存为csv?在我的Excel 2003中,您的文件打开不正确,没有按单元格分割内容。是的,我更改为$filename=excelreport.csv;标题为“content-type:application/csv”;