PHPmyadmin 3.4.9 导出到 CSV 的问题

Posted

技术标签:

【中文标题】PHPmyadmin 3.4.9 导出到 CSV 的问题【英文标题】:Issues With PHPmyadmin 3.4.9 Export To CSV 【发布时间】:2016-12-15 08:34:46 【问题描述】:

格式特定选项

用: , 分隔的列

用“”括起来的列

转义的列:\

以:AUTO 结尾的行

删除列中的回车/换行符 :ticked

当逗号符号位于列的文本字段中时,由 " (引号) 括起来,它们没有指定转义字符(在这种情况下),因此结果 CSV 文件被错误读取

有问题的字段是长文本,可以包含任何特殊字符,包括换行符(\n)

基本行示例:

XXXX | YYYY | ZZZZ | hi i am bla bla <img src = "blabla.com"> , hihi |

生成的 CSV 示例:

"xxxx", "YYYY", "ZZZZ", "hi i am bla bla <img src = \"blabla.com\">, hihi"

该示例应该清楚地显示问题:包含列的引号中的逗号不会转义并被计为列分隔的逗号

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

恕我直言,您误解了转义 CSV 列的规则。当列的文本用双引号引起来时,该文本中允许使用所有字符,但双引号本身除外。因此,无需转义逗号字符。

你的例子:

Raw:  hi i am bla bla <img src = "blabla.com">, hihi

Quoted:  "hi i am bla bla <img src = \"blabla.com\">, hihi"

是正确的。读取带有引用列的 CSV 文件比乍看之下更难。事实上,做正确的事情是众所周知的痛苦。聪明的程序员使用完全调试的包来完成。

【讨论】:

我解决了...这是 CSV 阅读器的问题,而不是文件本身。默认设置忽略转义字符,因此忽略引号符号。谢谢你的答案,你是完全正确的,这比我想象的要难得多。另一个艰难的教训:/

以上是关于PHPmyadmin 3.4.9 导出到 CSV 的问题的主要内容,如果未能解决你的问题,请参考以下文章

phpmyadmin 导出 CSV 到 excel 删除数据

phpmyadmin 导出表格到CSV,繁体中文变成问号

使用 phpMyAdmin 从 mySQL 自动导出 CSV

导出 SQLite 表的内容并导入到 phpmyAdmin 表中

为啥最新的 phpmyadmin 删除了 sql 作为导出格式?

PhpMyAdmin 导出程序结果