Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-CSV到MySQL再到前端,再回到CSV,最佳编码/字符串函数实践?_Php_Mysql_Character Encoding_Fgetcsv - Fatal编程技术网

PHP-CSV到MySQL再到前端,再回到CSV,最佳编码/字符串函数实践?

PHP-CSV到MySQL再到前端,再回到CSV,最佳编码/字符串函数实践?,php,mysql,character-encoding,fgetcsv,Php,Mysql,Character Encoding,Fgetcsv,我有一个场景,CSV文件被用来维护MySQL数据库中的数据(产品)。客户维护产品的基本步骤如下: 在预定义列中将项目添加到CSV文件 在后端上载CSV PHP脚本迭代CSV数据 数据被验证/清理并发送到MySQL数据库 当客户端编辑、添加或删除项目时,同样的情况反过来也适用,但是这也可以直接从后端完成。我遇到了某些字符在数据库或下载的电子表格中无法正确显示的问题,因此我的问题是: 通常,在以CSV文件的形式添加和检索数据时,应用于数据的一组好的编码或字符串函数是什么?我的MySQL连接编码是

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

  • 在预定义列中将项目添加到CSV文件
  • 在后端上载CSV
  • PHP脚本迭代CSV数据
  • 数据被验证/清理并发送到MySQL数据库
当客户端编辑、添加或删除项目时,同样的情况反过来也适用,但是这也可以直接从后端完成。我遇到了某些字符在数据库或下载的电子表格中无法正确显示的问题,因此我的问题是:

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

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

欢迎并赞赏所有建议


西蒙

在评论之后回答。对
http://www.joelonsoftware.com/articles/Unicode.html
看看如何实现datamapper模式,这里有一篇关于它的示例文章-
http://www.devshed.com/c/a/PHP/Implementing-the-Data-Mapper-Design-Pattern-in-PHP-5

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


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

建议您先阅读这篇文章,然后开始阅读-@David-谢谢,我已经阅读了这篇文章-非常精彩。我更多的是在CSV>MySQL和返回过程中遵循一个过程。谢谢,我建议您看看datamapper设计模式。@David-这到底是什么,它能帮我什么忙?它是一个通用的解决方案,用于在两个源之间映射数据,在您的例子中是CSV文件和数据库。我已经找到了这篇关于它的文章,快速的谷歌搜索会发现更多。这不是我想做的,不。正如问题所述,我从一系列MySQL表(以编程方式)导出数据,以便在任何电子表格应用程序(如MS Excel、Apache Open Office等)中打开。David Gillen的链接在当时(3年前)帮助了很多,现在我完全理解了字符集以及如何编码,解码并转换它们。我感谢你的意见,谢谢。