Mysql字符编码乱码解决方法

导出是,没有指定编码

方法一  phpmyadmin处理方式
  检查php-mbstring是否有可装,没有安装上 yum -y install php-mbstring
  打开phpmyadmin 中导出,再从phpmyadmin 导入是选取二制进(binary)
  如果还不行,在my.cnf mysqld中加入 default-character=你的编码, 重启mysql 再试

方法二 mysqldump 处理方式
导出方式
mysqldump -u root -p --default-character-set=编码 数据名称> file.sql

mysqldump -u root -p --default-character-set=big5 discuss_chi> dis.sql
---------------------
导入方式

mysqldump -u root -p --default-character-set=编码 数据名称< file.sql

mysql -u root -p --default-character-set=binary -f discuss_chi<file.sql  
也可以
mysql -u root -p --default-character-set=big5 -f discuss_chi<dis.sql
但是建议使用二进制,安全D!

 

 

方法三:

以原来的字符集为latin1为例,升级成为utf8的字符集。原来的表: old_table (default charset=latin1),新表:new_table(default charset=utf
第一步:导出旧数据
mysqldump --default-character-set=latin1 -h localhost -u root -B my_db --tables old_table > old.sql
第二步:转换编码(类似unix/linux环境下)
iconv -f gb2312 -t utf-8 -c old.sql > new.sql
或者可以去掉 -f 参数,让iconv自动判断原来的字符集
iconv -t utf-8 -c old.sql > new.sql
在这里,假定原来的数据默认是gb2312编码。
第三步:导入
修改old.sql,在插入/更新语句开始之前,增加一条sql语句:

"SET NAMES utf8;"
mysql -h localhost -u root -p my_db > new.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值