php数组转换为csv/excel。chr(255).chr(254).iconv(“UTF-8”、“UTF-16LE//IGNORE”、“$contents”)无法按预期工作

php数组转换为csv/excel。chr(255).chr(254).iconv(“UTF-8”、“UTF-16LE//IGNORE”、“$contents”)无法按预期工作,php,csv,export,Php,Csv,Export,这是如何将php数据导出到csv的简短代码 $filename ="excelreport.csv"; $contents = "русский \t testdata2 \t testdata3 \t \n latviešu valoda \t 43.45 \t testdata3 \t \n"; header('Content-type: application/csv'); header('Content-Disposition: attachment; filename='.$filen

这是如何将php数据导出到csv的简短代码

$filename ="excelreport.csv";
$contents = "русский \t testdata2 \t testdata3 \t \n latviešu valoda \t 43.45 \t testdata3 \t \n";
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);
echo chr(255).chr(254).iconv("UTF-8", "UTF-16LE//IGNORE", $contents);
这是将数组导出到csv的短代码

$data=array(
array("firstname" => "русский", "lastname" => "Johnson", "age" => 25),
array("firstname" => "Amanda", "lastname" => "Miller", "age" => 18),
);

$filename = "website_data_" . date('Ymd') . ".csv";

header('Content-type: application/csv');
header("Content-Disposition: attachment; filename=\"$filename\"");

$out = fopen("php://output", 'w');

foreach($data as $row) {
fputcsv($out, array_values($row), ',', '"');
}
fclose($out);
exit;
在第一个代码中,有一个包含俄文字符和
chr(255).chr(254).iconv(“UTF-8”、“UTF-16LE//IGNORE”、$contents)”的字符串。
可以处理该字符串,以便俄文字符
撸С撸撸
在csv中正确显示

以同样的方式尝试使用数组执行此操作

增加了
$data=(chr(255).chr(254).iconv(“UTF-8”,“UTF-16LE//IGNORE”,“$data”)在输出中获取空白csv文件

假设,ok,不适用于数组,但如第一个示例所示,必须适用于字符串。所以把代码改成这个

foreach($data as $row) {
fputcsv($out, array_values((chr(255).chr(254).iconv("UTF-8", "UTF-16LE//IGNORE", $row))), ',', '"');
}

但也得到了空白的csv文件。如何获得正确的csv文件(将数组导出为csv并正确显示俄语字符)?

答案/问题的可能副本是我的答案/问题,它与我在问题中所写的字符串有关。但正如您在问题中看到的,我无法让它与arrayUnless一起工作。如果您特别需要CSV(例如,导入到只读取CSV文件的外部应用程序),我倾向于编写真正的BIFF(.xls)或OfficeOpenXML(.xlsx)文件(如果您的用户希望使用MS Excel、Gnumeric、Open/Libre Office或其他可以读取Excel文件的应用程序中的数据)是的……但目前想了解编码问题(在任何情况下都需要了解)