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 从 mySQL 自动导出 CSV
导出 SQLite 表的内容并导入到 phpmyAdmin 表中