为特殊字符的Excel创建CSV文件

时间:2012-08-06 16:18:08

标签: php excel csv utf-8

我创建了一个简单的PHP脚本作为测试。我想让PHP从某些数据中保存csv。这个脚本有效,但是当我在Excel中打开它时,特殊字符就是乱码。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Character Test</title>
</head>

<body>
<ul>
<?php
$spanishDept = array('Swimwear'=>'Trajes de baῆo','Boys Swimwear'=>'Trajes de baῆo','Girls Swimwear'=>'Trajes de baῆo','Kids Shoes'=>'Zapatos de niῆos',"Scarves"=>'Paῆoletas','Children\'s'=>'Niῆos','Coffee Mugs'=>'Tasas para café');

$list = '"Item","Spanish"'."\r";
foreach($spanishDept AS $english=>$spanish) {
        echo '<li>'.$english.': '.$spanish.'</li>';
        $list .= '"'.$english.'","'.$spanish."\"\r";
}
$fp = fopen('theEXCELlist.csv',"w+");
fwrite($fp,$list,strlen($list)+100);
?>
</ul>
</body>
</html>

我可以在NotePad ++或Dreamweaver中打开它,一切都很好,但在Excel中没有好的

1 个答案:

答案 0 :(得分:1)

这个问题的解决方案可能在于PHP手册的“Multibyte String Functions”部分 换句话说,似乎PHP输出文件应该是UTF-16小端编码文件(带有BOM) 我不知道您使用的是哪个版本的Excel,但this post可能有用 另一种方法是打开Excel,插入特殊字符,另存为CSV,最后检查这些字符在输出文件中的编码方式。