用特殊字符为excel创build一个CSV文件

我已经创build了一个简单的PHP脚本作为testing。 我想让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中并不好

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