0

我有一个输入,用户可以(并且将永远)从 MSword 粘贴数据;特别是像© ® ™

当我使用将值添加到数据库系统时html_entity_decode($foo, ENT_NOQUOTES, 'UTF-8');

当我从数据库系统读取数据时,它在屏幕上呈现良好,但是当我将数据写入文件(使用fputscsv)并将其附加到电子邮件中时,生成的 csv 文件(在 Excel 中打开)它会像Copyright©一样出现。

关于如何以正确的文件格式获取它的任何想法?

4

2 回答 2

0

在写入 CSV 字符串之前尝试将字节顺序标记写入文件。

$byte_order_mark = "\xEF\xBB\xBF";
$contents = $byte_order_mark . $csv_string;
file_put_contents( $path_to_csv_file );
于 2013-04-05T15:59:32.257 回答
0

找到解决方案;它原来是一个字符编码问题(我责怪微软,因为当你在 Notepad++ 中打开文件时它很好)。

将数据添加到文件时,使用iconv转换数据的字符编码。
例子;

foreach ($data_row as $k => $cell) {
    $data_row[$k] = iconv("UTF-8", "ISO-8859-1//TRANSLIT", $cell);
}
于 2013-04-08T08:47:44.003 回答