1

キリル文字のデータがいくつかあり、Codeigniterを使用して.csvファイルでエクスポートしたいと思いました。問題は、メソッドcsv_from_result()がこれらの文字を混乱させることです。

$this->load->dbutil();
$delimiter = ",";
$newline = "\r\n";

$report_result =  $this->data_model->get_data_result();
$data['csv']    = $this->dbutil->csv_from_result($report_result, $delimiter, $newline);

そして私の見解では:

<?php
header("Content-type: application/csv-tab-delimited-table; charset=utf-8" );
header("Content-Disposition: attachment; filename=csvdata.csv" );
header("Content-Transfer-Encoding: binary" );
  echo $csv; 
?> 

出力ファイルには、次のような混乱した文字が含まれています。

ТеÑÑ‚ пиÑмо","54","Референц
4

3 に答える 3

2

ciからのcsv_from_resultはBOMなしでutf-8を生成します。ここで違いを見つけることができるので、ここで 行う必要があるのは「BOMなしのutf-8」を「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;
于 2014-02-22T17:48:40.757 に答える
1

私はCodeigniterにPHPExcelを使用することになりました。それは魅力のように機能しました。

于 2013-07-30T09:20:58.430 に答える
0

これを試して:

$this->load->dbutil();
$query = $this->db->query($sql);
$delimiter = ",";
$newline = "\r\n";

header ("Content-disposition: attachment; filename=csvoutput_" . time() . ".csv") ;
echo mb_convert_encoding($this->dbutil->csv_from_result($query, $delimiter, $newline), "ISO-8859-1", "UTF-8");
于 2012-08-02T19:36:11.607 に答える