1

我正在用 php 创建 csv 文件。要将数据写入我的 csv 文件,我使用 php 函数“fputcsv”。

这就是问题所在:我可以用 Excel 正常打开创建的文件。但我无法将文件导入商店系统(在本例中为“商店软件”)。它说类似“无法读取数据”。

现在线索来了:

如果我打开创建的文件并选择“另存为”并在类型中选择“CSV(逗号分隔)”,则可以将该文件导入到商店软件中。我读了一些关于我用来编码数据的 php 函数“mb_convert_encoding”,但它无法解决问题。

如果您能帮助我,我将非常高兴。

谢谢。

4

3 回答 3

1

感谢您的输入。我通过用 fwrite 替换 fputcsv 解决了这个问题。然后我只需要在行尾添加“\r\n”(感谢 wmil),生成的文件可以被商店软件读取。

显然 fputcsv 函数使用 \n 而不是 \r\n 作为 EOL 字符。

于 2011-10-27T11:55:52.157 回答
0

我认为您不能使用 fputcsv 设置编码。但是 fputcsv 会查看语言环境设置,您可以使用 setlocale 进行更改。

也许您可以将文件直接发送到用户浏览器,并使用带有标题功能的更改内容类型和字符集。

于 2011-10-26T17:31:47.207 回答
0

如果不了解有关您的系统的更多信息,就无法回答这个问题。很可能它与字符编码无关。这可能是列数错误或列标题不正确的问题。

如果是字符编码问题,最好的选择是:

$new_str = mb_convert_encoding($str, 'Windows-1252', 'auto');

换行符也以 \r\n 结束,而不仅仅是 \n。

如果这不起作用,您需要检查软件文档。

于 2011-10-26T17:38:34.747 回答