如何获取用于 psql 的以 utf-8 编码的 mysqldump 文件?

如何获取用于 psql 的以 utf-8 编码的 mysqldump 文件?

我正在将一些数据从 MySql 数据库 (v5.1.44/MyISAM/collat​​ion=latin1_swedish_ci) 迁移到 PostgreSQL (v9.0.4/OSX Lion 中包含的数据库)。

我在用着

$ mysqldump --compatible=postgresql > tmp.sql # output create/insert statements
$ psql --command='\i tmp.sql' # import to postgresql

但是导入失败并出现错误ERROR: invalid byte sequence for encoding "UTF8": 0xe97261(这是关于重音字母的)。

我认为问题在于导出的文件没有使用 utf-8。

导出的文件显示以下文件信息

$ file tmp.sql
tmp.sql: Non-ISO extended-ASCII text, with very long lines

最简单的是什么,可编写脚本如何为 psql 准备以 utf-8 格式的文件?

这不起作用:

$ iconv -f ASCII -t UTF-8 tmp.sql > out.sql
iconv: tmp.sql:18:59270: cannot convert

我发现打开文件vim并发布:set fenc=utf-8确实可以使导入顺利进行,但这必须自动化,所以我需要省去这个手动步骤。

答案1

请尝试以下操作:

mysqldump --default-character-set=charset_name

相关内容