在PHP中,我们可以动用header方法来钦定PHP页面包车型客车页面编码,能够是UTF,也得以是GBK编码,具体方法如下:

php的header来定义多个php页面为utf编码或GBK编码

php页面为utf编码
header(“Content-type: text/html; charset=utf-8″);

php页面为utf编码
header(“Content-type: text/html; charset=utf-8”);

php页面为gbk编码
header(“Content-type: text/html; charset=gb2312″);

php页面为gbk编码
header(“Content-type: text/html; charset=gb2312”);

php页面为big5编码
header(“Content-type: text/html; charset=big5″);

php页面为big5编码
header(“Content-type: text/html; charset=big5”);

平凡状态之上代码放在php页面包车型客车首页

平常性意况之上代码放在php页面包车型大巴首页

用header或meta达成PHP页面编码的界别

一、页面编码

1. 运用 <META http-equiv=”content-type” content=”text/html;
charset=xxx”> 标签设置页面编码

本条标签的功力是宣称客户端的浏览器用怎么样字符集编码展现该页面,xxx可感觉GB2312,GBK,UTF-8(和MySQL不相同,MySQL是
UTF8)等等。因而,当先一半页面能够利用这种艺术来报告浏览器展现那一个页面的时候利用什么样编码,这样才不会引致编码错误而发生乱码。可是有个别时候我们会
发掘存了那句照旧十三分,不管xxx是哪类,浏览器选用的一贯都是一种编码,这些状态本人前面构和到。

请在意,<meta>是归于html新闻的,仅仅是二个注明,它起效果注脚服务器已经把HTML新闻传到了浏览器。

2. header(“content-type:text/html; charset=xxx”);

本条函数header(卡塔尔的效应是把括号里面的新闻发到http标头。

假诺括号里面包车型地铁剧情为文中所说这样,那作用和<META>标签基本相近,大家对待第二个看发现字符都差相当的少的。然而不一致的是若是有这段
函数,浏览器就能够永久采取你所须求的xxx编码,相对不会不听话,因而那几个函数是很有用的。为啥会这么吗?那就得说说HTTPS标头和HTML新闻的差别了:

https标头是服务器以HTTP合同传送HTML音信到浏览器前所送出的字串。

因为meta标签是归属html信息的,所以header(卡塔尔发送的源委先到达浏览器,通俗点正是header(卡塔尔的先行级高于meta(不精通可
不得以这么讲)。参与一个php页面既有header(“content-type:text/html;
charset=xxx”State of Qatar,又有<META http-equiv=”content-type”
content=”text/html;
charset=xxx”>,浏览器就只认前面一个http标头而不认meta了。当然那些函数只好在php页面内选择。

无异于也留有三个标题,为啥前面多个就相对起效果,而前面一个有的时候候就极度呢?那正是接下去要谈的Apache的原故了。

3. AddDefaultCharset

Apache 根目录的 conf 文件夹里,有100%Apache的配备文书档案httpd.conf。

用文件编辑器展开httpd.conf,第708行(区别版本大概差别)有AddDefaultCharset
xxx,xxx为编码名称。那行代码的情趣:设置任何服务器内的网页文件https标头里的字符集为你私下认可的xxx字符集。有那行,就一定于给各个文件都
加了一行header(“content-type:text/html;
charset=xxx”卡塔尔。这下就知道怎么明明meta设置了是utf-8,可浏览器始终接收gb2312的来头。

假定网页里有header(“content-type:text/html;
charset=xxx”State of Qatar,就把暗许的字符集改为您设置的字符集,所以这些函数恒久有用。如若把AddDefaultCharset
xxx后面加个“#”,注释掉那句,况且页面里不含header(“content-type…”卡塔尔,那这时候就轮到meta标签起效果了。

总结:

来个排序

header(“content-type:text/html; charset=xxx”)
AddDefaultCharset xxx
<META http-equiv=”content-type” content=”text/html;
charset=xxx”>
若是您是web程序员,给你的各类页面都加个header(“content-type:text/html;
charset=xxx”卡塔尔国,保险它在任何服务器都能精确展现,可移植性强。

至于那句AddDefaultCharset
xxx,要不要讲解就智者见智了。反正小编是注释掉了,可是本身写页子也要写header(卡塔尔,便于放到服务器上能健康显示。

用header或meta达成PHP页面编码的区分
一、页面编码

二、数据库编码

PHP 程序在查询数据库此前,首先实施 mysql_query(“SET NAMES xxxx”State of Qatar;个中xxxx 是你网页的编码(charset=xxxxState of Qatar,借使网页中 charset=utf8,则
xxxx=utf8,假如网页中
charset=gb2312,则xxxx=gb2312,差相当的少具有WEB程序,都有一段连接数据库的共用代码,放在叁个文本里,在这里文件里,参加mysql_query(“set names”State of Qatar就能够了。

SET NAMES 突显客户端发送的 SQL 语句中央银行使什么字符集。因而,SET NAMES
‘utf-8′语句告诉服务器“以往从这么些客商端传来的音讯使用字符集utf-8”。它还为服务器发送回顾客端的结果钦命了字符集。(举例,借使您利用一个SELECT语句,它代表列值使用了什么字符集。)

PHP页面编码统一

MySQL数据库编码、html页面编码、PHP或html文件本人编码要从头到尾一成不改变。
1、MySQL数据库编码:创建数据库时钦赐编码(如gbk_chinese_ci卡塔尔,建设构造数据表、创立字段、插入数据时绝不钦赐编码,会自行延续数据库的编码。
数据库连接时,也可能有编码,能够在一而再三番四次完数据库后,推行
mysql_query(‘SET NAMES gbk’卡塔尔国;//将gbk换到你的编码,如utf8。

2、html页面包车型客车编码,指的是这一行的装置:
<meta http-equiv=”Content-Type” content=”text/html; charset=gbk”
/>

3、PHP或html文件自身的编码:用editplus张开php文件或html文件,另存时,选用的编码,如若数据库和页面编码是gbk,则那儿的编码接受ansi;如若数据库和页面编码是utf-8,则那儿也选拔utf-8。

4、其余要当心的是,Javascript或Flash中传送的数量是utf-8编码,纵然数据库和页面编码是gbk,要举办转码,然后写入数据库。
iconv(‘utf-8′, ‘gbk’, $content);

5、在PHP程序中,能够加上一行,来内定PHP源程序的编码:
header(‘Content-type: text/html; charset=gbk’);

  1. 利用 <META http-equiv=”content-type” content=”text/html;
    charset=xxx”> 标签设置页面编码

其一标签的效果是声称客商端的浏览器用哪些字符集编码展现该页面,xxx可认为GB2312,GBK,UTF-8(和MySQL不一样,MySQL是
UTF8)等等。因而,超越八分之四页面能够行使这种艺术来报告浏览器显示那几个页面包车型地铁时候使用什么编码,那样才不会形成编码错误而产生乱码。但是一些时候大家会
开掘存了那句如故要命,不管xxx是哪种,浏览器选择的始终都以一种编码,那些处境自身前边交涉到。

请在乎,<meta>是归属html消息的,仅仅是二个扬言,它起成效申明服务器已经把HTML新闻传到了浏览器。

2. header(“content-type:text/html; charset=xxx”);

以此函数header(卡塔尔(قطر‎的法力是把括号里面包车型地铁音信发到http标头。

比方括号里面包车型地铁剧情为文中所说那样,那功效和<META>标签基本相像,咱们对待第一个看开采字符都大概的。然则区别的是如果有这段
函数,浏览器就能够永世选择你所要求的xxx编码,相对不会不听话,由此那个函数是很有用的。为啥会这么啊?那就得说说HTTPS标头和HTML新闻的差别了:

https标头是服务器以HTTP合同传送HTML新闻到浏览器前所送出的字串。

因为meta标签是归属html音讯的,所以header(卡塔尔(قطر‎发送的内容先达到浏览器,通俗点就是header(卡塔尔的事情发生前级高于meta(不精通可
不得以如此讲)。参预三个php页面既有header(“content-type:text/html;
charset=xxx”卡塔尔,又有<META http-equiv=”content-type”
content=”text/html;
charset=xxx”>,浏览器就只认前面二个http标头而不认meta了。当然这几个函数只好在php页面内采用。

一模二样也留有二个难点,为何后边三个就相对起效果,而前者不时候就可怜吧?那就是接下去要谈的Apache的缘故了。

3. AddDefaultCharset

admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注