Home > Database > Mysql Tutorial > body text

mysql导入乱码问题解决办法

WBOY
Release: 2016-06-07 17:53:06
Original
953 people have browsed it

很多朋友可能会碰到在利用命令或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'");
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template