windows环境mysqldump导出乱码
在Windows下用navicat编辑和测试迁移程序(sql),所有脚本Ready后想弄个脚本做版本管理
程序分为两个部分:
- navicat的
查询
脚本 - 数据库中的sp或function
查询脚本好弄,做个软连接就行了,sp和function需要导出到当前目录,结果怎么弄都是,sp的注释都是乱码,导入回来就看不明白是啥了
$command = "D:\app\mysqlclient\mysqldump -R -ndt $mysqlDatabase -h $target -P $netPort -u $mysqlUser -p'$mysqlPassword' --default-character-set=utf8 > scripts/migrate_SP_GT.sql"
Invoke-Expression $command
查了一大圈,全是胡说,加了default character根本没用
只能把bing搜索改成搜英文,果然大法还是管用:
According to this forum thread, the culprit is the
> filename
redirection on Windows, which seems to have trouble with UTF-8 characters.Try using the
--result-file
parameter instead.
结论:
$command = "D:\app\mysqlclient\mysqldump -R -ndt $mysqlDatabase -h $target -P $netPort -u $mysqlUser -p'$mysqlPassword' --default-character-set=utf8 --result-file scripts/migrate_SP_GT.sql"
Invoke-Expression $command