1数据库备份命令 mysqldump -uroot -p --default-character-set=gbk dbname > /root/newsdata.sql
或 mysqldump -uroot -p --default-character-set=utf8 dbname > /root/newsdata.sql

2导入数据库
mysql -uroot -p --default-character-set=gbk
use dbname
source /root/newsdata.sql

mysql -uroot -p --default-character-set=utf8
use dbname
source /root/newsdata.sql

若问题不能解决
看下面
mysql 创建 数据库时指定编码很重要很多开发者都使用了默认编码
但使用的经验来看 定数据库的编码可以很大程度上避免倒入导出带来的乱码问题

遵循的标准是数据库表字段和页面或文本的编码要统一起来
很多mysql数据库工具(除了phpmyadmin我偶尔用功能强速度慢)都不支持创建时指定数据库编码

可以改my.ini来解决这个问题,但是需要重新启动mysql不过用下面的语句会更有效
GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci

注意
如果不是通过my.ini配置文件设置的内容
只在当前状态下有效当重启数据库服务后失效
所以如果想要不出现乱码只有修改my.ini文件数据库编码
可以在创建数据库时候指定UTF8如下:
|character_set_client      | utf8                                  |
| character_set_connection | utf8                                  |
| character_set_database   | utf8                                  |
| character_set_filesystem | binary                                |
| character_set_results    | utf8                                  |
| character_set_server     | latin1                                |
| character_set_system     | utf8           

注意该配置
| character_set_server     | latin1 无法设置成UTF8
交互时候仍然会出现乱码

只有当修改my.ini中设置UTF8才会全部修改成UTF8
-------------------------
mysql设置编码命令

SET character_set_client = utf8;
SET character_set_connection = utf8;
SET character_set_database = utf8;
SET character_set_results = utf8;
SET character_set_server = utf8;

SET collation_connection = utf8_bin;
SET collation_database = utf8_bin;
SET collation_server = utf8_bin;

my.ini中配置默认编码
default-character-set=utf8