我们可以利用header方法来指定PHP页面的页面编码普京网址:,作为数据库字符集编码

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

用文件编辑器展开httpd.conf,第708行(分歧版本可能不一致)有AddDefaultCharset
xxx,xxx为编码名称。那行代码的意思:设置任何服务器内的网页文件https标头里的字符集为你暗中同意的xxx字符集。有那行,就一定于给每一个文件都
加了一行header(“content-type:text/html;
charset=xxx”卡塔尔(قطر‎。那下就掌握为啥明明meta设置了是utf-8,可浏览器始终选拔gb2312的原故。

用文件编辑器展开 httpd.conf,第 708 行(不一致版本或许分化卡塔尔有
AddDefaultCharset
xxx,xxx为编码名称。那行代码的意趣:设置任何服务器内的网页文件 http
标头里的字符集为你私下认可的 xxx字符集。有那行,就一定于给每一种文件都加了一条龙header(“content-type:text/html;
charset=xxx”卡塔尔国。那下就驾驭为什么明明<meta>设置了是
utf-8,可浏览器始终选用 gb2312 的来由。

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

一律也留有二个难点,为何前面一个就绝对起作用,而后人有的时候候就极其吗?那正是接下去要谈的Apache的来由了。

数据库中的字符集编码难题 流行的关周全据库系统都扶持数据库字符集编码,也正是说在制造数据库时方可钦点它和睦的字符集设置,数据库的多少以钦点的编码情势储存。当应用程序访问数据时,在入口和出口处都会有字符集编码的转移。对于华语数据,数据库字符编码的安装相应保证数据的完整性。GB2312、GBK、UTF-8
等都是可选的数据库字符集编码;当然我们也足以接收 ISO8859-1
(8-bit卡塔尔(قطر‎,只是大家得在应

用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(State of Qatar的效应是把括号里面包车型客车音讯发到http标头。

假定括号里面包车型地铁从头到尾的经过为文中所说那样,这功能和<META>标签基本相近,大家对待第贰个看开掘字符都大致的。但是不一样的是借使有这段
函数,浏览器就能永恒采纳你所须要的xxx编码,相对不会不听话,由此那个函数是很有用的。为啥会如此吗?那就得说说HTTPS标头和HTML音讯的差异了:

https标头是服务器以HTTP公约传送HTML消息到浏览器前所送出的字串。

因为meta标签是归于html新闻的,所以header(卡塔尔国发送的内容先到达浏览器,通俗点就是header(State of Qatar的优先级高于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

Apache 根目录的 conf 文件夹里,有总体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”State of Qatar,保险它在别的服务器都能科学显示,可移植性强。

有关那句AddDefaultCharset
xxx,要不要讲授就仁者见仁智者见智了。反正本身是注释掉了,然则自身写页子也要写header(卡塔尔,便于放到服务器上能寻常呈现。

借使括号里面包车型大巴剧情为文中所说那么,那成效和<META>标签基本相近,我们对待第四个看发掘字符都差不离的。然而区别的是只要有这段
函数,浏览器就能够永世接受你所须要的xxx编码,相对不会不听话,因而那个函数是很有用的。为何会这么吧?那就得说说HTTPS标头和HTML消息的差别了:

若是您是 web
技师,建议给您的各种页面都加个header(“content-type:text/html;charset=xxx”卡塔尔(قطر‎,那样就足以确定保障它在别的服务器都能正确呈现,可移植性也相比强。

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

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

解决各个应用的乱码难点

二、数据库编码

PHP 程序在查询数据库早先,首施夷光行 mysql_query(“SET NAMES xxxx”卡塔尔;当中xxxx 是你网页的编码(charset=xxxx卡塔尔,要是网页中 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’State of Qatar;//将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’);

其一函数header(State of Qatar的效果是把括号里面包车型地铁音信发到http标头。

3) AddDefaultCharset
Apache 根目录的 conf 文件夹里,有整套 Apache 的配备文书档案 httpd.conf。

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

二、数据库编码
PHP 程序在查询数据库在此之前,首先实践 mysql_query(“SET NAMES xxxx”卡塔尔(قطر‎;在那之中xxxx 是你网页的编码(charset=xxxxState of Qatar,要是网页中 charset=utf8,则
xxxx=utf8,要是网页中
charset=gb2312,则xxxx=gb2312,大约全部WEB程序,都有一段连接数据库的国有代码,放在贰个文书里,在此文件里,出席mysql_query(“set names”State of Qatar就能够了。

平等也留有二个主题材料,为何前面多少个就相对起效果,而后者一时候就可怜吧?这正是接下去要谈的Apache
的来头了。

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

因为meta标签是归于html消息的,所以header(State of Qatar发送的剧情先达到浏览器,通俗点正是header(卡塔尔的优先级高于meta(不明白好还是不佳那样讲)。参加贰个php页面既有header(“content-type:text/html;
charset=xxx”卡塔尔(قطر‎,又有<META http-equiv=”content-type”
content=”text/html;
charset=xxx”>,浏览器就只认前面三个http标头而不认meta了。当然那几个函数只好在php页面内使用。

PHP程序设计中汉语编码难点早已干扰比较多少人,招致那么些主题素材的缘由实在很简短,各国(或区域卡塔尔都规定了微型机音讯调换用的字符编码集,如米国的增加ASCII 码, 中国的 GB2312-80,日本的 JIS
等。作为这个国家家/区域内音信管理的根底,字符编码集起着统一编码的显要意义。字符编码集按长度分为
SBCS(单字节字符集卡塔尔国,DBCS(双字节字符集State of Qatar两大类。先前时代的软件(特别是操作系统卡塔尔国,为了缓和本地字符音讯的微管理机处理,现身了各类当地化版本(L10N卡塔尔国,为了区别,引进了
LANG, Codepage
等概念。不过出于种种地点字符集代码范围重叠,互相间信息置换困难;软件各样当地化版本独立维护资金较高。因而有供给将本地化专业中的共性抽出出来,作相通处理,将特地的本地化管理内容降到最少。那也便是所谓的国际化(118N卡塔尔。各类语言音讯被更加的规范为
Locale 消息。管理的尾部字符集形成了差十分少包含了装有字形的 Unicode。

我们可以利用header方法来指定PHP页面的页面编码普京网址:,作为数据库字符集编码。php页面为big5编码
header(“Content-type: text/html; charset=big5”);

近期大部分负有国际化特征的软件基本字符管理都以以 Unicode
为底蕴的,在软件运营时依照那个时候的ocale/Lang/Codepage
设置规定相应的地面字符编码设置,并依此管理地点字符。在管理进度中供给落到实处Unicode 和地点字符集的竞相转变,甚或以 Unicode
为中等的五个不等地点字符集的并行转换。这种办法在互连网境遇下被进一层拉开,任何网络两端的字符音讯也需求依照字符集的装置转换来可选取的剧情。

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”卡塔尔,保障它在其余服务器都能准确呈现,可移植性强。

4) php.ini 中的 default_charset 配置:
php.ini 中的 default_charset = “gb2312” 定义了 php
的暗许语言字符集。平日推荐注释掉此行,让浏览器依据网页头中的 charset
来机关选用语言而非做三个免强性的规定,那样就可以在一块儿服务器上提供多样语言的网页服务。

SET NAMES 展现客户端发送的 SQL 语句中动用什么字符集。因而,SET NAMES
‘utf-8’语句告诉服务器“现在从那一个顾客端传来的消息使用字符集utf-8”。它还为服务器发送回顾客端的结果钦点了字符集。(举例,假使您利用三个SELECT语句,它代表列值使用了何等字符集。)

SET NAMES 突显顾客端发送的 SQL 语句中应用什么字符集。由此,SET NAMES
‘utf-8’ 语句告诉服务器“今后从这几个客户端传来的音讯运用字符集
utf-8”。它还为服务器发送回客商端的结果钦命了字符集(举例,假若你利用多个SELECT 语句,它象征列值使用了什么样字符集卡塔尔。

来个排序

请小心<meta>是归于 HTML 消息的,仅仅是一个宣称,仅注明服务器已经把
HTML 新闻传到了浏览器。

发表评论

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

相关文章