我使用了来自http://code.google.com/p/parsecsv-for-php/的CSV解析器,将我的报告导出为PHP中的CSV。我已经在浏览器和Excel(导出后)中显示了€XXXX.XX
中的Sales Total value,并以Euro符号显示。
但是在CSV中,它显示的不是欧元符号,而是代码€
。
如何将€
导出到相应的CSV符号
提前感谢。快乐编码:)
这是唯一的东西,干净地为我修复它
html_entity_decode($text, ENT_QUOTES, 'utf-8')
您需要在将字符串写入文件之前对它们使用html_entity_decode()
,这将找到所有html实体并将它们替换为实际的符号。
html_special_chars()
和html_special_chars_decode()
只适用于少数html实体,如>
和<
,而htmlentities()
和html_entity_decode()
适用于所有实体。
或者,你可以只是做一个字符串替换(str_replace()
或preg_replace()
或其他)为€
替换为€
。
然后尝试:
str_replace('€','€',$valuebeingexported);
根据我的Excel有一些问题显示csv文件与unicode字符。你可以在下面试一次:
使用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()一样写到输出缓冲区机制。
我不太了解CSV文件,但您应该尝试以下两种方法:
-
直接使用欧元符号
或
-
查找CSV文件编码
试试这个
//add BOM to fix UTF-8 in Excel
fputs($fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
fputcsv($handler, $fields, ';', '"');
您是否尝试使用€
代替€
?