- 浏览: 117422 次
- 性别:
- 来自: 福建
-
文章分类
最新评论
-
keynescao:
兄弟写得不错,受教了。
ContentProvider简介 -
jackhao168:
好
ContentProvider简介
php的header来定义一个php页面为utf编码或GBK编码
php页面为utf编码
header("Content-type: text/html; charset=utf-8");
php页面为gbk编码
header("Content-type: text/html; charset=gb2312");
php页面为big5编码
header("Content-type: text/html; charset=big5");
通常情况以上代码放在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"),又有<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字符集。有这行,就相当于给每个文件都 加了
<script type="text/javascript"></script>
一行header("content-type:text/html; charset=xxx")。这下就明白为什么明明meta设置了是utf-8,可浏览器始终采用gb2312的原因。
如果网页里有header("content-type:text/html; charset=xxx"),就把默认的字符集改为你设置的字符集,所以这个函数永远有用。如果把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(),便于放到服务器上能正常显示。
二、数据库编码
PHP 程序在查询数据库之前,首先执行 mysql_query(“SET NAMES xxxx”);其中 xxxx 是你网页的编码(charset=xxxx),如果网页中 charset=utf8,则 xxxx=utf8,如果网页中 charset=gb2312,则xxxx=gb2312,几乎所有WEB程序,都有一段连接数据库的公共代码,放在一个文件里,在这文件里,加入 mysql_query(“set names”)就可以了。
SET NAMES 显示客户端发送的 SQL 语句中使用什么字符集。因此,SET NAMES 'utf-8'语句告诉服务器“将来从这个客户端传来的信息采用字符集utf-8”。它还为服务器发送回客户端的结果指定了字符集。(例如,如果你使用一 个SELECT语句,它表示列值使用了什么字符集。)
发表评论
-
php返回HTTP状态码
2013-08-20 11:07 26475面试时很多人问我这个,记录一下 200是ok, 404 ... -
zend studio 安装aptana插件 以及对js代码的支持
2012-02-08 16:54 1561http://bbs.houdunwang.com/threa ... -
zend studio将tab键改为4个空格
2012-02-07 23:16 1280zend studio将tab键改为4个空格 -
调试变量,输出变量,DEBUG可用SMARTY的函数debug_print_var
2012-02-07 14:36 1137比如要调试数组$array {$array|@debug ... -
PHP时间戳函数总结一览
2012-01-31 22:15 745PHP语言中的函数有许多种,各种应用方式不同,实现的功能也不尽 ... -
php计算时间差/两个时间日期相隔的天数,时,分,秒.
2012-01-31 19:02 6103<?php function tim ... -
Eclipse\Zend Studio\EPP等基于Eclipse的IDE配色主题插件
2011-12-23 14:03 2996Eclipse\Zend Studio默认的白色编辑器配色主题 ... -
php中rename()函数的妙用
2011-12-13 19:00 806php中rename()函数的妙用 大家都知道 ... -
关于 Zend Studio 调试的环境
2011-11-18 17:27 963Zend Studio IDE 很强大,但是不能调 ... -
solr-1.4.1安装笔记
2011-11-06 02:30 1191Solr是一个基于Lucene java ... -
FCKeditor的PHP配置
2011-10-27 11:03 7921、下载FCKeditor 多国语言版 2、解压后为文件夹减 ... -
PHP 反射机制详解 以及插件架构实现
2011-09-12 01:12 11441。用途:该扩展分析php程序,导出或提取出关于类、方法、属性 ... -
PHP debug_backtrace() 函数 ,函数调用位置 ,定位
2011-09-10 00:52 2147PHP Error 和 Logging 函数 中的 ... -
php大括号的妙用
2011-08-12 17:19 748// Get the first character of ... -
Smarty3.0 配置方法及初步认识
2011-07-27 11:54 2545今天想通过用Smarty作一 ... -
php时间函数出错及解决方法 php date_default_timezone_set()函数用法
2011-07-04 14:10 1192php时间函数出错及解决 ... -
函数:set_time_limit()
2011-06-10 00:19 753set_time_limit 配置该页最久执行时间。 语 ... -
函数:get_cfg_var()
2011-06-10 00:17 822get_cfg_var 取得 PHP 的配置选项值。 语 ... -
Apache开启Rewrite环境
2011-05-24 14:15 846环境:系统 WindowsApache 2.2 加载Rewr ... -
PHP header() 使用心得
2011-05-10 11:40 996下面是关于header函数的 ...
相关推荐
在Web开发中,AJAX(Asynchronous JavaScript and XML)技术被广泛应用于实现网页的异步加载,即在不重新加载整个页面的情况下更新部分网页数据。而在AJAX请求中,Header(头部信息)的设置对于与服务器端进行有效的...
根据提供的文档信息,本文将详细解析 PHP 页面中的各种编码设置方法及其重要性,并结合数据库编码配置,确保数据处理过程中的编码一致性。 ### 一、PHP 页面编码设置 #### 1.1 使用 `meta` 标签设置页面编码 在 ...
在开发Web应用时,如何确保页面字符编码...此外,服务器的配置也可能影响最终的编码设置,了解并掌握如何调整服务器配置,以及如何根据不同的服务器环境进行适当的编码声明,对于确保网站的兼容性和可访问性至关重要。
2. **charset属性**:最常见的是设置字符编码,如`<meta charset="UTF-8">`,确保页面正确显示各种语言的字符。 3. **http-equiv属性**:模拟HTTP响应头,如`;URL='newpage.html'">`,可设置页面自动刷新或跳转。 4....
此外,还可以通过HTML页面的`charset`、`response.setCharacterEncoding()`、`response.setContentType()`或`response.setHeader()`来设置字符编码,其中`response.setContentType()`和`response.setHeader()`具有...
在实际应用中,可能会遇到不同环节编码设置不一致的情况,如数据库使用gb2312而PHP脚本或HTML页面使用utf8,这将导致乱码。解决这类问题的关键在于统一整个系统的字符编码设置,确保从数据输入到输出的每个环节都...
同时,如果想要在页面跳转前执行一些代码,可以在header函数前添加输出语句(如echo或print),但一旦有任何实际输出(哪怕是空格或换行符)发送到浏览器,就不能再使用header函数进行重定向或设置Content-Type了。...
本资源“网页编码手册大集合”是一个综合性的学习资料包,包含了这些核心领域的详细介绍,适用于初学者和有经验的开发者。 HTML是网页内容的骨架,用于定义网页的结构和意义。`Page w3school(5.0).CHM`很可能源自...
在实际开发过程中,可以根据具体需求选择合适的方法,或者将二者结合使用,以确保网页的编码设置得到最佳的处理效果。在多语言网页中,正确的编码设置更是保证用户能够正确查看内容的基础,对提升用户体验至关重要。
在PHP开发中,中文编码问题是一个常见的挑战,尤其是在涉及数据库存储和页面展示时。这个问题的核心在于字符编码的不一致和转换...通过细致的调试和适当的编码设置,可以有效地解决这些问题,实现中文内容的正确显示。
通过调用`header`,我们可以控制浏览器如何处理当前的网页,实现如重定向、设置状态码、控制缓存等高级功能。以下是对`header`函数在HTTP头设置中的常见用法的详细解释: 1. **状态码设置**: - `header('...
1. **GBK编码设置:** - PHP中,通过`header()`函数发送HTTP头部信息来指定编码,例如: ```php header("Content-Type: text/html; charset=gb2312"); ``` - 对于静态HTML页面,应在`<head>`标签内添加`<meta>`...
例如,可以创建一个`EncodingUtils`类,包含静态方法`applyEncodingFilter()`,该方法接受`ServletRequest`和`ServletResponse`作为参数,执行编码设置操作。这样,即使在不支持过滤器的环境中,也能灵活地使用这个...
- `request.getCharacterEncoding()`: 返回请求的字符编码集,如果未设置则返回`null`。 - `request.getContentLength()`: 返回请求体的长度,如果请求没有实体则返回`-1`。 - `request.getContentType()`: 返回...
在某些环境下,如果没有正确设置响应的编码,可能会导致页面加载不正确,或者出现乱码。解决这个问题通常需要调整HTTP响应头,例如设置Content-Type为`text/html; charset=utf-8`。 5. PHP中的header()跳转与ASP中...
如果使用IDE,可以检查“文件编码”设置,确保没有BOM。 2. **关闭错误报告**:在代码开头临时关闭错误报告,如`error_reporting(0); ini_set('display_errors', 0);`,这可以避免错误消息导致的头信息输出。 3. **...
另一种设置页面编码的方法是通过PHP的内置函数`header()`。这个函数允许我们在响应头中设置各种信息,包括Content-Type,即页面的MIME类型和字符编码。以下是如何使用`header()`函数的例子: ```php // 在PHP MVC的...
设置页面的MIME类型和字符编码,如: ```php header('Content-Type:text/html;charset=utf-8'); ``` 这有助于确保浏览器正确解析和显示内容。 **用法3:返回HTTP响应状态码** 通过`header()`设置HTTP响应状态码,...