我知道有些人会认为这是重复的问题,但我尝试了stackoverflow上提供的所有解决方案。
我的问题是,在excel中打开时我无法在CSV中显示某些字符,但notepad++
正确显示。
Notepad ++输出:
Excel输出:
我知道有些人会建议我展示一些标题&所以,但我只是将这个CSV保存到服务器。用户将在需要时使用FTP下载它。
答案 0 :(得分:7)
如果您需要编程方式来执行此操作,那么最好的方法是在CSV文件的最开头添加BOM字符。最新版本的Excel(Excel 2007 SP3或更高版本)会将此BOM字符解释为指示文件的其余部分为UTF-8并正确加载。
以下是PHP代码:
// generate $csv_content as usual
// fopen the file you want to write to in $csv
$BOM = "\xEF\xBB\xBF";
fwrite($csv, $BOM . $csv_content);
fclose($csv);
答案 1 :(得分:3)
这是因为您文件的字符编码是UTF-8。 Notepad ++正确检测到它,但Excel没有字符编码检测,并假设所有内容都是本地Windows编码。
按照下面列出的步骤使用Microsoft Excel 2007打开使用UTF-8字符编码的.csv文件: