快速解决PHP+MYSQL 出现乱码的解决方法

在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,代码如下:

 代码如下 复制代码
1 $mysql_mylink = mysql_connect($mysql_host, $mysql_user, $mysql_pass);
2 mysql_query("SET NAMES 'GBK'");

数据库字符集为utf-8

连接语句用这个
 

 代码如下 复制代码

1 mysql_query("SET NAMES 'UTF8'");
2 mysql_query("SET CHARACTER SET UTF8");
3 mysql_query("SET CHARACTER_SET_RESULTS=UTF8'");

这些方法都在php 连接mysql之前进行设置操作了,如例子

 代码如下 复制代码

set_time_limit(0);
mysql_connect('localhost','root','root');
mysql_select_db('sms');
mysql_query("set Names 'gbk'");

这样就是设置我的页面与数据库统一编码了,是不是简单呀,那么如果是导入数据乱码解决办法不一样

linux系统中

linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题。

解决mysql导入导出数据乱码问题

首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8,

例如下面的代码:

mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql

 那么导入数据的时候也要使用--default-character-set=utf8:

mysql -uroot -p --default-character-set=utf8 dbname < bak.sql

这样统一编码就解决了mysql数据迁移中的乱码问题了

我使用windows作为导出数据源,并导入 freebsd环境下的mysql库

解决方法:

导出数据

一、首先在windows平台下mysql用作导出数据库源。查看字符编码的系统变量:

 mysql> show variables like ‘%char%';
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | gbk |
| character_set_system | utf8 |
| character_sets_dir | D:mysqlsharecharsets |

+————————–+—————————-+

查看character_set_database,这里是latin1,latin1是装不了多字节字符集的

二、在windows下设置系统变量为utf8

mysql>set character_set_database=utf8; ##设置默认的字符集为utf8

三、导出数据

mysql> select * from table into outfile ‘c:table.txt' where +条件

这时导出了我想要的部分数据,并以txt文件存在 table.txt中。

导入数据

在freebsd平台下

一、同样设置字符编码的系统变量

 mysql> show variables like ‘%char%';

+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | gbk |
| character_set_system | utf8 |

+————————–+—————————-+

mysql>set character_set_database=utf8; ##设置默认的字符集为utf8

二、转载数据

mysql>load data local infile ‘/home/table.txt' into table `table`;

至此、条件数据完整导入导出,并处理了乱码的情况。
总之,两台mysql服务器导入导出时,一定要确保两台服务器的character_set_database参数相同,这样才能防止一些 乱码的情况。当然我们还可以使用其他字符集,如gbk来进行调整。视情况操作了

附后,通用解决办法

方法一: 通过增加参数 –default-character-set = utf8 解决乱码问题
mysql -u root -p password < path_to_import_file –default-character-set = utf8

方法二: 在命令行导入乱码解决

1. use database_name;
2. set names utf8; (或其他需要的编码)
3. source example.sql (sql文件存放路径)
 

时间: 2024-08-02 10:27:30

快速解决PHP+MYSQL 出现乱码的解决方法的相关文章

mysql出现乱码怎么解决

问题描述 mysql出现乱码怎么解决..如:Image??oks??oks_01.gif 解决方案 解决方案二:又是乱码问题~参考一下:解决方案三:记住一个原则,每处编码保持一致肯定不会出现乱码.解决方案四:把你的开发工具所有编码都设置一致就不会遇见这种情况了

MySQL中文乱码怎么解决啊???????

问题描述 MySQL中文乱码怎么解决啊??????? 解决方案 解决方案二:配置字符集时选择utf8解决方案三:my.ini文件中改default-character-set=utf-8解决方案四:使用mySql-front工具吧,察看数据库时,可以设置使用的编码方式(指定gb2312),就Ok了.解决方案五:配置字符集时选择UTF-8解决方案六:先配置数据库的字符集是gb2312,如果你是web开发,注意检查写入数据库的时候中文是否已经乱码了...解决方案七:setCharacterEncod

使用php 5时MySQL返回乱码的解决办法

在使用 PHP 5 中,通过 MySQL 查询得到的值全部成为 '???????',原来是字符集设错了. 我在安装 MySQL 5 时,已经选择默认字符集为 gb2312,但还是返回乱码,解决的办法是在连接 MySQL 服务器后,调用一个与所设字符集相同的 "set names X" 语句(X 为你所设的字符集).下面是我的连接函数: function sql_connect() { global $MYSQL_HOST, $MYSQL_USER, $MYSQL_PASSWORD, $

HIVE再次尝试 用 Mysql 环境搭建 以及 mysql中文乱码完美解决

上文说道hive用默认的Derby作为metadata的存放处,但是这个缺点比较多,只能同时让一个用户登陆,重启机器后建的表也没了,不能用于真正的集群,下面讲解用mysql作为数据的搭建方法. 1. hive安装 第一步:安装mysql 因为我用的是ubuntu系统,安装比较简单,一行命令搞定 sudo apt-get install mysql-server 这里顺便说下mysql的数据文件放在/var/lib/mysql目录下,配置文件放在:/etc/mysql目录下 对于mysql5.5版

PHP读MYSQL中文乱码的解决方法_php技巧

打算切换某个网站的主机,没想到遇到Php和Mysql中文乱码的问题. 以前的国外主机用的Mysql是4.x系列的,感觉还比较好,都无论GBK和UTF-8都没有乱码,没想到新的主机的Mysql是5.0版本的,导入数据后,用Php读出来全是问号,乱码一片,记得我以前也曾经有过一次切换出现乱码的经验,原因肯定是Mysql版本之间的差异问题. 只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用

CMD下查询Mysql中文乱码的解决方法

  今天在CMD下登陆Mysql执行select查询指令,结果中文全部变成"???"问号乱码了,解决方法很简单,直接在mysql>下输入 set names gbk; 即可解决问题. 原理不多说了,反正现在的人只要解决了问题就不会深究原因了...

PHP+MYSQL 出现乱码的解决方法_php技巧

肯定都已经解决了JSP里的乱码问题,不过还是有些人的MYSQL乱码问题没有得到解决,包括我自己,所以又找了一些资料,希望这次能完全解决MYSQL数据库的乱码问题.  第一种方法,很精辟的总结:  经常更换虚拟主机,而各个服务商的MYSQL版本不同,当导入数据后,总会出现乱码等无法正常显示的问题,查了好多资料,总结出自己的一点技巧:  WINDOWS 下导入应该这样  使用MYSQL的命令  在DOS命令下进入mysql的bin目录下,输入mysql -uroot -p密码 数据库名称<要恢复的数

PHP读MYSQL中文乱码的解决方法

其MYSQL的默认字符集竟然是瑞典文(latin1_swedish_ci),害的我手动一个表一个表地修改字符集为Unicode多语言(utf8_unicode_ci). 只好查资料,发现了一个解决方法,就是在mysql_connect后面加一句SET NAMES UTF8,即可使得UTF8的数据库消除乱码,对于GBK的数据库则使用SET NAMES GBK,代码如下:  代码如下 复制代码 $mysql_mylink = mysql_connect($mysql_host, $mysql_use

mysql数据库乱码的解决方法

 做一个包含越南文的网站,用户说在保存包含越南文的文章时,MSYQL乱码了,看下面的解决方法   我自己测试一下,很多字符变成了 '?'.   数据库连接已经是使用了 utf8 字符集:     代码如下: define("MYSQL_ENCODE", "UTF8");   mysql_query('SET NAMES '.MYSQL_ENCODE,$conn) or die('字符集设置错误'.mysql_error());       搞了大半小时,没有搞定.