我正在尝试使用 PHPExcel 将具有 utf 字符的字符串写入 excel。但它没有按预期编写。下面是示例代码。
我尝试了 stackoverflow 提供的不同解决方案,但它们都不起作用,可能我无法正确理解,因为这是我第一次使用 PHP。
我为我的问题提供了以下示例代码。此示例字符串在实际实现中取自 mysql 表,我已应用“DEFAULT CHARSET=utf8 COLLATE=utf8_bin”来支持 utf-8。
如果我喜欢下面并打印到浏览器,那么它可以与“Content-Type: text/html; charset=utf-8”标题一起使用。
下面的代码有什么问题?如何解决这个问题?特殊字符是大连字符
<?php
$libdir='/home/user';
include_once($libdir.'/PHPExcel.php');
include_once($libdir.'/PHPExcel/Writer/Excel2007.php');
$workBook = new PHPExcel();
$sheet = $workBook->getActiveSheet();
$str = 'i m – here';
$str = utf8_decode($str);
//echo STDERR $str; if it print here then i will get proper string "– will be converted to big hyphen)
$sheet->setCellValueByColumnAndRow(0, 0, $str);
$filename = "abc.xls";
header('Content-type: application/xls');
header("Content-Disposition: attachment; filename=\"$filename\"");
$writer = new PHPExcel_Writer_Excel5($workBook);
$cache_dir = "/home/user/cache";
$writer->save($cache_dir/$filename);
readfile($cache_dir/$filename);
?>