Gla*_*elp 1 php csv codeigniter export
我有一些西里尔文数据,我想使用 Codeigniter 将其导出到 .csv 文件中。问题是 csv_from_result() 方法混淆了这些字符。
\n\n$this->load->dbutil();\n$delimiter = ",";\n$newline = "\\r\\n";\n\n$report_result = $this->data_model->get_data_result();\n$data[\'csv\'] = $this->dbutil->csv_from_result($report_result, $delimiter, $newline);\nRun Code Online (Sandbox Code Playgroud)\n\n在我看来,我有:
\n\n<?php\nheader("Content-type: application/csv-tab-delimited-table; charset=utf-8" );\nheader("Content-Disposition: attachment; filename=csvdata.csv" );\nheader("Content-Transfer-Encoding: binary" );\n echo $csv; \n?> \nRun Code Online (Sandbox Code Playgroud)\n\n输出文件包含如下混乱的字符:
\n\n\xc3\x90\xc2\xa2\xc3\x90\xc2\xb5\xc3\x91\xc3\x91\xe2\x80\x9a \xc3\x90\xc2\xbf\xc3\x90\xc2\xb8\xc3\x91\xc3\x90\xc2\xbc\xc3\x90\xc2\xbe","54","\xc3\x90 \xc3\x90\xc2\xb5\xc3\x91\xe2\x80\x9e\xc3\x90\xc2\xb5\xc3\x91\xe2\x82\xac\xc3\x90\xc2\xb5\xc3\x90\xc2\xbd\xc3\x91\xe2\x80\xa0\nRun Code Online (Sandbox Code Playgroud)\n
ci 的 csv_from_result 生成 utf-8 without BOM,你可以在这里找到区别, 所以你现在需要做的就是将“utf-8 without BOM”转换为“utf-8”,你可以使用以下代码来完成。
$this->load->dbutil();
$delimiter = ",";
$newline = "\r\n";
$report_result = $this->data_model->get_data_result();
$CSV_data = $this->dbutil->csv_from_result($report_result, $delimiter, $newline);
$CSV_data = chr(239) . chr(187) . chr(191) .$CSV_data;
$data['csv'] = $CSV_data;
Run Code Online (Sandbox Code Playgroud)