当前位置:首页 > 系统运维 > 正文内容

MySQL+PHP乱码的产生缘由与实际解决方案

a8116255316年前 (2010-06-07)系统运维8

此文章主要向大家阐述的是MySQL+PHP乱码的产生缘由与实际解决方案,以及在实际操作中值得我们大家注意的相关事项的描述,如果你对MySQL+PHP乱码的相关内容有兴趣了解的话,你就可点击以下的文章了。

MySQL+PHP产生乱码原因:

MySQL数据库默认的编码是utf8,如果这种编码与你的PHP网页不一致,可能就会造成MySQL乱码;

MySQL中创建表时会让你选择一种编码,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码;

MySQL创建表时添加字段是可以选择编码的,如果这种编码与你的网页编码不一致,也可能造成MySQL乱码;

用户提交页面的编码与显示数据的页面编码不一致,就肯定会造成PHP页面乱码;

如用户输入资料的页面是big5码, 显示用户输入的页面却是gb2312,这种100%会造成PHP页面乱码;

PHP页面字符集不正确;

PHP连接MySQL数据库语句指定的编码不正确。

注意:

很多人都怀疑MySQL版本不一致会导致乱码,相信看了本说明你就不会这样认为了。

平时你在某些网站看到的文字可能有几种编码, 如你看到一个繁体字,它有可能是big5编码,也有 可能是utf-8编码的,更有可能是gb码的,没错,也就是说有简体编码的繁体字,也有繁体编码的简体字,一定要了解这一点。

如果你是做一个简体编码的网页,编码定为GB2312,如果有香港和台湾地区的访客提交繁体的信息,就可能会造成乱码,解决 *** :

将网站编码设为 utf-8,这样可以兼容世界上所有字符。

如果网站已经运作了好久,已有很多旧数据,不能再更改简体中文的设定,那么建议将页面的编码设为 GBK, GBK与GB2312的区别就在于:GBK能比GB2312显示更多的字符,要显示简体码的繁体字,就只能用GBK。

使用MySQL+PHP产生乱码的原因都了解得很清楚了,那么解决就不困难了。

MySQL+PHP产生乱码的解决办法:

如果安装MySQL的编码已不能更改,很多朋友是购买虚拟主机建立网站,无权更改MySQL的安装编码,这一关我们可以跳过,因为只要后面的步聚正确,一样能解决乱码问题。

修改数据库编码,如果是数据库编码不正确,可以在PHPmyadmin 执行如下命令:

ALTER DATABASE 'test' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin  

以上命令就是将test数据库的编码设为utf8。

修改表的编码:

ALTER TABLE 'category' DEFAULT CHARACTER SET utf8 COLLATE utf8_bin  

以上命令就是将一个表category的编码改为utf8。

修改字段的编码:

ALTER TABLE 'test' CHANGE 'dd' 'dd' VARCHAR( 45 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL  

以上命令就是将test表中dd的字段编码改为utf8。

如果是这种情况容易解决,只需检查下页面,修改源文件的charset即可。

这种情况也是修改页面charset即可。

在连接数据库的语句中。

mysql_connect('localhost','user','password'); mysql_select_db('my_db'); mysql_query("set names utf8;");  

select 数据库之后加多这一句

为了避免PHP页面乱码的发生,PHP页面开始之一句

header("content-type:text/html; charset=utf-8");  

强行指定页面的编码,以避免乱码

注意:照以上 *** 修改以后只能保证你新插入的数据不会乱码,举个例:如果你用户已提交的数据是BIG5,你却想通过以上 *** 改为可以在GB2312的网页正确显示是不可能的, 这种文字内码的变换只能通过另写程序来解决。

原文标题:MySQL+PHP乱码原理与解决

连接:http://www.cnblogs.com/buffer/archive/2010/01/29/1659348.html

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/20917.html

分享给朋友:

“MySQL+PHP乱码的产生缘由与实际解决方案” 的相关文章

如何删除自带的不常用应用为windows 7减负

如何删除自带的不常用应用为windows 7减负

对于Windows 7系统来说,其默认安装的许多工具是我们很少使用或从来不用的,比如系统自带的扫雷、纸牌游戏等。删除此类长期不用的系统组件,不但可以让系统更清爽,更重要的是还可以提高系统的运行速度,特别是对于硬件配置相对较低的上网本来说,尤其如此。接下来,笔者就给大家介绍一下如何删除Windows...

如何设置Win 7通知栏重新显示电源按钮

如何设置Win 7通知栏重新显示电源按钮

有些使用本本的朋友可能会发现,右下角通知栏区域会无法显示电源按钮,导致在插上电源或者是使用电池的时候都无法进行区分。造成这种情况大部分都是因为使用了第三方修改过的系统版本或者对于系统优化过度,所以今天就来解决这个问题。 第一步:在开始菜单的搜索窗口输入“gpedit.msc”,进入组策略编辑器,依...

各个都很实用:windows 7系统电脑日常小技巧

各个都很实用:windows 7系统电脑日常小技巧

在使用Windows 7的时候很多用户对于系统的很多功能并不是很了解,也正是因为这样的不了解导致很多用户在使用Win 之后并不能体验Windows 7的功能便携和强大功能,导致很多用户对于Windows 7的认识还是比较模糊,不过为了让更多的朋友了解Windows 7的特点和便携应用,今天就为大家汇...

windows 7系统重装后卡在正在启动Windows开机界面怎么办

windows 7系统重装后卡在正在启动Windows开机界面怎么办

重装系统是我们面对许多电脑问题时的终极方法,不过重装系统也不意味着就能将全部的问题都修复。一些用户在重装系统后开机时,电脑卡在“正在启动Windows”开机界面上了,这要怎么解决呢? Windows 7系统重装后卡在开机界面的解决方法: 一、首先可以看看该故障出现的原因是否是因为启动了acp...

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04打开个几个应用窗口最小化后怎么切换呢?

ubuntu14.04应用窗口列表在哪里?在ubuntu下打开个几个应用窗口最小化后怎么切换呢,应用窗口列表在哪里呢? 1、多打开几个chrome浏览器窗口。 2、然后都做最小化处理。 3、现在我们在桌面左边的面板上找到"左右两边有小白点"的chrome浏览器应用图标,这就是chr...

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

windows 7旗舰版系统提示应用程序错误代码0xc0000409的故障原因

问题现象,具体如下所示:  故障分析: 一般来说,出现这种情况是因为电脑误删系统文件或者是系统文件被顽固木马破坏。       解决方法: 1、下载360安全卫士,找到里面的急救箱开始急救,然后进行修复,完成后重新启动; 2、下载瑞...