PHP 网页乱码终极解决方案2014-10-11 12:26:20

( 12人已投票,[高质量] )
分享: ╬收藏
31.3K

PHP 网页乱码终极解决方案

网页出现乱码是最让人气恼的一件事,

好好的页面被修改后发现全乱码了,是否会感觉特别慌乱,有么有!

下面我们就来分析并永远解决网页乱码问题,乱码问题再不用头疼。

在这之前,有必要特别强调一点:首先我要强调一点,如果修改网页时不小心改乱码了,千万别保存!

如果点保存了,一定不要关了编辑器,一定要撤销回去(经常用到的快捷键为Ctrl+Z),

不然的话:

既然有时间去恢复那些蝌蚪文,为啥不去买一张彩票呢。

进入正题:但凡乱码,无非这五种情况之一:

  • 1:头Meta属性;

  • 2:网页文件编码;

  • 3:数据库内容;

  • 4:数据库结构;

  • 5:连接数据库时的编码方式;


首先确定一下自已的网页是何种编码,一般中文网页多数都是UTF-8或是GB2312也有Unicode(以下皆以UTF-8为例)

无论你用三剑客的Dreamweaver或是Editplus,打开文件,查看->编码->选择“UTF-8”,看看乱码现象是否解决,

1):解决,修复头Meta属性,请在页面上添加这么一句话来统一编码

<meta   http-equiv=Content-Type   content= 'text/html;   charset=utf-8 '>  

这个属性在浏览页面的时候,点击Ctrl+U 查看源码,在头部分应该有这个Meta属性

在PHP动态页面中添加header("Content-type: text/html; charset=utf-8");同样效果

2):没有解决,修正文件编码,请用EditPlus 或是 DW打开将页面的编码修正,DW里的页面属性,有编码选项,EditPlus:文档->文件编码方式->更改文件编码方式->“UTF-8”

定能解决非数据库内容乱码问题


未解决的接着往下看,要点3主要是排除验证乱码可解决性,数据库内容

由于上面的Meta与文件编码修正未能解决,不得不把目光投向数据库,

而第一步要做的就是检查看看数据是不是无法修复的。

用PHPMYADMIN或是直接用shell命令内查看数据内容,看看是否已乱,要说明一件残酷的事实,如果数据库内存的是“蝌蚪文”,出来无论怎么转换都是“蝌蚪文”,修不了的。这就是我顶部强调不要在静态乱码上点保存的原因,因为可能是显示原因造成乱码,保存以后,彻底数据变为不可识别的了。


数据库结构数据库编码需与网页编码一致,检查数据库的编码格式,若不一致请修改:

更改文件my.ini(此文件在mysql的安装目录下)中的配值,有两处要改,修改为需要的编码格式,然后删除之前建立的表,然后重新建立,再插入比如汉字格式的字段,则不会再提示错误信息。如果有PHPMYADMIN就方便多了,有了可视化的数据库管理界面,直接在结构内修改编码属性。

关于改数据库编码,这里很有必要强调一下:编码不只是一处,而是三处

数据库编码,表编码、字段编码,都改致才是上策;其中的字段编码细节,int型的boolean型timestamp型等不用更改,主要修改varchar、text等数据类型字段的编码。

有人说,在安装完mysql之后,配置MySql Server的时候,如果修改默认的编码格式,将默认的latin1,改为gb2312或utf8,以后再创建数据库表,其中的中文都会正常存储和显示。听说这是中文常用处理的一个手段

数据库编码不方便改,怎么办,如果不改在取值的时候需转码iconv("UTF-8","gb2312",$str);转来转去,这儿转那儿也要转是件麻烦事情,数据库内容量大时候的权衡之计。

有没有发现,对数据库编码了如手掌才是关键,你需要知道你的数据库默认为何种编码。


连接数据库时的编码方式,PHP举例,检查连接数据库的地方有无这句话,没有请添加

在选择数据库(connect)函数前一行添加 mysql_query("SET NAMES 'UTF8'");

这句话是如此的重要,定能解决数据库数据乱码现像,


另附一个非技术性解决方案:如果打开网页乱码了,请尝试着修改一下浏览器的页面编码,比如GB2312或是UTF-8;说不定页面就不乱了哦~












头像

snowcoal
  • 原创
  • 网页乱码
  • PHP乱码

收藏到我的私密空间

标题:PHP 网页乱码终极解决方案

作者:花花世界

你暂未登录,请登录后才可收藏至您的私密空间 确认取消
雪炭网

键盘操作 更便捷 -雪炭网雪中送炭-乐趣无限