Я пытаюсь разрешить моим клиентам просматривать некоторые данные MySQL в Excel.Я использовал PHP-функцию fputcsv (), например:
public function generate() {
setlocale(LC_ALL, 'ko_KR.UTF8');
$this->filename = date("YmdHis");
$create = $this->directory."Report".$this->filename.".csv";
$f = fopen("$create","w") or die("can't open file");
fwrite($f, "\xEF\xBB\xBF");
$i = 1;
$length = count($this->inputarray[0]);
fwrite($f, $this->headers."\n");
// print column titles
foreach($this->inputarray[0] as $key=>$value) {
$delimiter = ($i == $length) ? "\n\n" : ",";
fwrite($f, $key.$delimiter);
$i++;
}
// print actual rows
foreach($this->inputarray as $row) {
fputcsv($f, $row);
}
fclose($f);
}
Мои клиенты корейцы, и хороший кусок базы данных MySQL содержит значения в utf8_unicode_ci.Используя вышеупомянутую функцию, я успешно сгенерировал файл CSV с правильно закодированными данными, который прекрасно открывается в Excel на моем компьютере (Win7 на английском языке), но когда я открыл файл в Excel на клиентском компьютере (Win7 на корейском языке), символыбыли сломаны снова.Я попытался извлечь заголовок (\ xEF \ xBB \ xBF) и закомментировать setlocale, но безрезультатно.
Можете ли вы помочь мне разобраться в этом?