【发布时间】:2011-04-06 08:41:05
【问题描述】:
我有一个使用 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 工作的好的解决方案是什么?
欢迎和赞赏所有建议。
西蒙
【问题讨论】:
-
建议阅读这篇文章以开始使用 - joelonsoftware.com/articles/Unicode.html
-
@David - 谢谢,我读过那篇文章 - 太棒了。我更喜欢在 CSV > MySQL 和后台流程中遵循的流程。谢谢
-
我建议看看 datamapper 设计模式。
-
@David - 那究竟是什么,它对我有什么帮助?
-
它是在两个源之间映射数据的通用解决方案,在您的情况下是 CSV 文件和数据库。我已经拉起了这篇文章,快速谷歌搜索会找到更多。 devshed.com/c/a/PHP/…
标签: php mysql character-encoding fgetcsv