您好,欢迎访问一九零五行业门户网

mysql导入乱码问题解决办法

很多朋友可能会碰到在利用命令或phpmyadmin导入数据时出现中文乱码问题了,下面我来给大家介绍解决导入乱码的方法,有需要的朋友可参考。
要想导入时避免不出现乱码,只要保证数据文件的编码和导入时甚至的编码一直即可,注意:不是和的编码一致。例如:数据文件data.sql,编码为utf-8,使用如下命令:
 代码如下 复制代码
mysql -uroot -p --default-character-set=utf8 db
上面的办法不一定有效果,因为不知道mysql编码,我们可以先查看mysql编码
 代码如下 复制代码
mysql> show variables like %char%;
+--------------------------+---------------------------------------------------------------------------------+
| variable_name            | value                                                                           |
+--------------------------+---------------------------------------------------------------------------------+
| character_set_client     | latin1                                                                          |
| character_set_connection | latin1                                                                          |
| character_set_database   | utf8                                                                            |
| character_set_filesystem | binary                                                                          |
| character_set_results    | latin1                                                                          |
| character_set_server     | utf8                                                                            |
| character_set_system     | utf8                                                                            |
| character_sets_dir       | /usr/local/percona-server-5.1.57-rel12.8-233--x86_64/share//charsets/ |
+--------------------------+---------------------------------------------------------------------------------+
8 rows in set (0.01 sec)
mysql> show variables like %coll%;
+----------------------+-------------------+
| variable_name        | value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | utf8_bin          |
| collation_server     | utf8_bin          |
+----------------------+-------------------+
修改sql文件
 代码如下 复制代码
set collation_connection = utf8_bin;
set character_set_client = utf8;
set character_set_connection = utf8;
再执行导入
 代码如下 复制代码
mysql  --socket=/opt/mydata/my3306/my3306.sock -a
还发现一个程序导入乱码解决办法,就是在mysql_connect后面加一句set names utf8,即可使得utf8的消除乱码,对于gbk的数据库则使用set names gbk,代码如下:
 代码如下 复制代码
$mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
mysql_query(set names 'gbk');
数据库字符集为utf-8
连接语句用这个
 代码如下 复制代码
mysql_query(set names 'utf8');
mysql_query(set character set utf8);
mysql_query(set character_set_results=utf8');
其它类似信息

推荐信息