2

我有一个使用 CSV 文件来维护 MySQL 数据库中的数据(产品)的场景。基本上客户维护产品的步骤如下:

  • 将项目添加到预定义列中的 CSV 文件
  • 在后端上传 CSV
  • PHP 脚本遍历 CSV 数据
  • 数据经过验证/清理并发送到 MySQL 数据库

当客户端编辑、添加或删除项目时,同样适用于相反的情况,但是这也可以直接从后端完成。我遇到了某些字符在数据库或下载的电子表格中没有正确显示的问题,所以我的问题是:

通常,在以 CSV 文件的形式添加和检索数据时,适用于数据的一组好的编码或字符串函数是什么?我的 MySQL 连接编码是 UTF-8,但是我尝试使用 UTF-8 字符集保存 CSV 文件,但似乎 Excel 会自动对其应用默认的 Windows-1252 编码,从而破坏所有 ym UTF-8 字符。

像 Open Office.org 这样的应用程序会提示您输入导入字符集,并且当设置为 Unicode UTF-8 时,它显示正常。显然不能依赖客户端总是使用 Excel 或 Open Office,那么 PC / CSV > MySQL > 回到 PC / CSV 工作的好的解决方案是什么?

欢迎和赞赏所有建议。

西蒙

4

2 回答 2

2

所以在评论后回答。很好地理解http://www.joelonsoftware.com/articles/Unicode.html并了解如何实现数据映射器模式,关于它的示例文章在这里 - http://www.devshed.com/c/a/PHP/Implementing-the-Data-Mapper-Design-Pattern-in-PHP-5

于 2011-04-06T10:31:49.600 回答
0

如果我理解正确,您正在尝试使用 Excel 打开、编辑和保存 CSV 文件。这通常是一个坏主意,原因有很多,包括它不允许您指定导出到的 csv 文件的详细信息。

一种故障安全但更麻烦的方法可能是将数据加载到 Access 中,并在那里处理数据。Access 允许使用更高级的设置(如编码和分隔符)“导出到文本文件”。

于 2014-12-16T15:15:13.917 回答