下面是我如何在根文件夹中使用unicode字符写入数据
<?php
mysql_connect('localhost','root','');
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
mysql_select_db('test') or die('3');
$q = mysql_query("SELECT * FROM `t1`");
$d = '';
while ($r = mysql_fetch_array($q)) {
$d .= $r['col1'];
}
function writeUTF8File($filename,$content) {
$f=fopen($filename,"w");
# Now UTF-8 - Add byte order mark
fwrite($f, pack("CCC",0xef,0xbb,0xbf));
fwrite($f,$content);
fclose($f);
}
writeUTF8File('utf.csv', $d);
?>
但是当使用Microsoft Office Excel 2007打开此文档时,数据将变为
进行快速研究后,我需要使用"From Other Sources"
导入,然后我可以看到正确的数据
所以问题是如何在没有导入的情况下打开此文档(“From Other Sources”),因为稍后我需要将此文档传递给我的客户(不确定他们是否知道导入和在看到所有数据之前做一些设置)。
答案 0 :(得分:0)
Mine Excel在带有BOM的UTF8 csv文件上表现良好。
使用十六进制编辑器检查csv文件。我很确定你有Excel编码的字符,而不是所需的字符。
请尝试以下操作:
$f=fopen($filename,"wb");
这将以二进制形式编写PHP字符串,而不是编码所有字符。
附加检查:如果您将$d
输出到HTML,它会显示正确的字符吗?
我还从fwrite() and UTF8获得了一些信息。