我使用了来自http://code.google.com/p/parsecsv-for-php/的CSV解析器,将我的报告导出为PHP格式的CSV。我在€XXXX.XX
,浏览器和Excel(导出后)中显示了销售总价值,显示为欧元符号。
但是在CSV中,而不是欧元符号,它只显示代码€
。
如何将€
的相应符号导出为CSV。
提前致谢。 快乐的编码:)
答案 0 :(得分:3)
这是唯一能为我彻底修复它的东西
html_entity_decode($text, ENT_QUOTES, 'utf-8')
答案 1 :(得分:2)
在将字符串写入文件之前,您需要在字符串上使用html_entity_decode()
,这将找到所有html实体并将其替换为实际符号。
html_special_chars()
和html_special_chars_decode()
仅适用于几个html实体,例如>
和<
,而htmlentities()
和html_entity_decode()
适用于所有他们。
或者,您可以为str_replace()
执行字符替换(preg_replace()
或€
或其他内容)以替换为€
。
然后尝试:
str_replace('€','€',$valuebeingexported);
答案 2 :(得分:1)
根据我的说法Excel显示带有unicode字符的CSV文件时出现问题。您可以尝试下面一次:
使用fputcsv()
处理utf-8
。
如下所示:
$handler = fopen("php://output", "w");
header("Content-Type: text/csv; charset=UTF-8");
fputcsv($handler, $fields, ';', '"');
fclose($handler);
注意php://output
是一个只写流,它允许您以与print()和echo()相同的方式写入输出缓冲区机制。
答案 3 :(得分:1)
我对CSV文件知之甚少,但您应该尝试以下两点:
直接放入欧元符号。
或强>
查找CSV文件编码。
答案 4 :(得分:0)
您是否尝试将€
用于€而不是€
?
答案 5 :(得分:0)
试试这个
//add BOM to fix UTF-8 in Excel
fputs($fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
fputcsv($handler, $fields, ';', '"');