Windows服务器中MySql利用MySqlDump导出时汉字乱码问题

环境:
Windows Server 2012 R2
MySql 5.5.20

导出命令:
mysqldump  --default-character-set=utf8mb4 --hex-blob -uroot -p db1 > C:\db1.sql

问题:导出后,文件中汉字出现乱码.注意命令中已经指定了编码为utf8mb4.

上网搜索问题,有一个人也遇到这种问题,指定编码后依然为乱码.最后发现是mysqldump命令的版本过低.但经过查看,我这个服务器的的mysqldump命令的版本也为5.5.20.

试验1:通过Navicat导出的文件汉字正常,不乱码.

试验2:试着用mysql -uroot -p --default-character-set=utf8mb4 t < C:\db1.sql命令,试验导入.这时发现提示“<”运算符是为将来使用而保留的。太奇怪了,输入重定向符号都不识别?!

这个时候注意到,原来我一直在Power Shell 命令窗口中执行命令.以前也经常在Power shell中执行各种命令,并没有发现什么异常,所以这次也没考虑PowerShell的问题.但是网友们的导出没有我这种问题,那还是不用PowerShell窗口了吧.

切换到Cmd中执行导出命令.再次查看导出的文件,汉字正常,不再乱码.

结论:Windows Server中不要在Power Shell命令窗口中执行mysqldump,会导致指定字符编码无效!

简单的查看了下Power Shell与Cmd窗口的属性,代码页都是936GBK,没有发现其它的区别.
原因未知,以后有时间再分析吧!或者哪位网友知道这方面问题,一起讨论下

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值