【问题标题】:mysqldump to csv in utf8mysqldump 到 utf8 中的 csv
【发布时间】:2013-07-29 14:57:18
【问题描述】:

我正在使用以下命令将数据从我的数据库导出到 csv:

mysqldump -u root -p -T/home/xxx/stock_dump -t --fields-terminated-by=";" products stock

但是数据库是 UTF-8 格式,这个命令错误地导出了 UTF-8 字符,例如

ŻYWIEC ZDRÓJĂÂťYWIEC ZDRĂâJ

如何以正确的 UTF-8 格式导出它?

添加 --default-character-set=utf8 根本没有帮助。

或者如果不可能,我如何以最简单的方式对其进行后处理? iconv 可以做些什么吗?

【问题讨论】:

  • 您的文件可能没有显示为 utf8 吗?有 BOM 吗?
  • 您确定导出的文件不是UTF8格式吗?如果是这样,但你阅读它的方式是把它解释为别的东西怎么办?像这样的编码问题很烦人,因为每次查看数据时,它都会被解释,并且可能会被错误地解释。如果您有已知格式的文本,您可以随时检查编码不一致。
  • 我确定它是无效的,因为当我通过 PHP 生成它时,它具有完全不同的字符并且可以正确显示

标签: mysql csv utf-8 debian export-to-csv


【解决方案1】:

mysqldump produces UTF-8 encoded dumps 除非另有说明(或者除非您使用真正、真正旧版本的 mysqldump -- 无论如何,您正确使用 --default-character-set=utf8 即可解决)。

您的文本编辑器无法正确识别 UTF-8,或者数据库中的数据已被错误编码。

【讨论】:

  • 数据库中的数据有可能是通过Latin1连接放入UTF8表的。但是当我使用 PHP 或 mysql 客户端时,它会正确显示值。不知道如何真正检查出来。
猜你喜欢
  • 1970-01-01
  • 2018-08-28
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
  • 2017-09-28
  • 1970-01-01
  • 2021-08-18
  • 2010-11-14
相关资源
最近更新 更多