使用fwrite导出到csv时的编码问题

时间:2017-01-18 10:50:38

标签: php csv encoding

我有一个以分号分隔的列表,使用fwrite导出到csv文件,并且运送数据导致了一些问题。 有问题的原始数据看起来像

Shipping (Interlink Express ( 20.88))

但由于html实体中的分号,这显然打破了布局。我以为我可以通过替换

来解决这个问题
$xml_orders .= $method.";";

$xml_orders .= html_entity_decode($method).";";

但现在给了我

Shipping (Interlink Express (€20.88))

我之后尝试了html_entity_decode,然后尝试了utf8_decode,因为我之前使用过utf8_decode来修复一个问题,即输出为ñ,但这并没有解决问题。

最佳解决方案是什么?

1 个答案:

答案 0 :(得分:1)

你需要逃脱分号。 最好的方法是将每个columun放在双引号内,这样csv文件就可以读作单个值。请参阅以下示例:

Col1;Col2;Col3;
Col1; "Col2 ; i need to escape it"; Col3;
Col1; Col2; "Col3 with escape of ; and ""quotes""";

要转义列中的双引号,需要添加两个“”