如何显示从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中显示为

下面是将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;不变

然后$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”;