0

我有一个脚本,它读取远程 CSV 文件的内容,遍历行,并将数据项添加到数据库中。该文件平均有大约 3000 行,因此有 3000 个产品。

澄清几点:

  • 我没有事先控制 CSV 文件中的数据
  • 我无权访问/控制创建此 CSV 文件的方式
  • CSV 文件每天从 MySQL 数据库中的数据动态生成一次

问题:

我的脚本只迭代了大约 1300 行然后停止,没有错误,什么都没有。所有文本都用双引号括起来,通常 CSV 文件格式正确。奇怪的是:如果我下载 CSV 文件,在 Notepad++ 中打开它并将编码更改为 UTF-8 不带 BOM,将其上传到测试服务器并在该文件上运行我的脚本,我得到了 FULL 3000 个项目和所有很好。

那么,我假设生成此文件的人需要将数据插入为 UTF-8?因为我无法控制该过程,所以我想知道是否有一种相当简单的方式可以将没有 BOM 编码的 UTF-8 应用于该文件,或者至少将文件内容读入一个变量并重新编码?

非常感谢

4

2 回答 2

1

在处理文件之前,您可以使用iconv直接从 php 更改编码。

编辑: iconv 的 php 版本可用于处理数据。如果要在导入文件之前重新编码文件,则必须使用 linux 命令iconv(假设是 LAMP 服务器),例如exec

于 2011-04-07T13:42:23.663 回答
0

听起来您正试图直接从另一台服务器执行此操作。为什么不获取整个文件并将其保存到您自己的服务器,对其进行任何操作然后进行处理?

于 2011-04-07T13:37:53.707 回答