我有一个输入,用户可以(并且必须始终)从MSword中粘贴数据;特别是©
®
™
使用html_entity_decode($foo, ENT_NOQUOTES, 'UTF-8');
当我从数据库系统中读取它时,它在屏幕上渲染很好,但是当我将数据写入文件(使用fputscsv
)并将其附加到电子邮件时生成的csv文件(在Excel中打开)它像版权所有©一样出现。
有关如何以正确的文件格式获取文件的想法吗?
答案 0 :(得分:0)
尝试在写入CSV字符串之前将字节顺序标记写入文件。
$byte_order_mark = "\xEF\xBB\xBF";
$contents = $byte_order_mark . $csv_string;
file_put_contents( $path_to_csv_file );
答案 1 :(得分:0)
找到解决方案;事实证明这是一个字符编码问题(我指责微软,因为在Notepad ++中打开文件时它很好)。
将数据添加到文件时使用iconv转换数据的字符编码 实施例;
foreach ($data_row as $k => $cell) {
$data_row[$k] = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $cell);
}