`
kaozjlin
  • 浏览: 117422 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

header 设置页面编码

    博客分类:
  • php
阅读更多

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语句,它表示列值使用了什么字符集。)

 

分享到:
评论

相关推荐

    ajax添加header整理

    在Web开发中,AJAX(Asynchronous JavaScript and XML)技术被广泛应用于实现网页的异步加载,即在不重新加载整个页面的情况下更新部分网页数据。而在AJAX请求中,Header(头部信息)的设置对于与服务器端进行有效的...

    php页面各种编码设置_.docx

    根据提供的文档信息,本文将详细解析 PHP 页面中的各种编码设置方法及其重要性,并结合数据库编码配置,确保数据处理过程中的编码一致性。 ### 一、PHP 页面编码设置 #### 1.1 使用 `meta` 标签设置页面编码 在 ...

    PHP 页面编码声明方法详解(header或meta)

    在开发Web应用时,如何确保页面字符编码...此外,服务器的配置也可能影响最终的编码设置,了解并掌握如何调整服务器配置,以及如何根据不同的服务器环境进行适当的编码声明,对于确保网站的兼容性和可访问性至关重要。

    header和meta头部信息

    2. **charset属性**:最常见的是设置字符编码,如`&lt;meta charset="UTF-8"&gt;`,确保页面正确显示各种语言的字符。 3. **http-equiv属性**:模拟HTTP响应头,如`;URL='newpage.html'"&gt;`,可设置页面自动刷新或跳转。 4....

    jsp中影响编码的属性及其设置小结

    此外,还可以通过HTML页面的`charset`、`response.setCharacterEncoding()`、`response.setContentType()`或`response.setHeader()`来设置字符编码,其中`response.setContentType()`和`response.setHeader()`具有...

    php字符编码确定

    在实际应用中,可能会遇到不同环节编码设置不一致的情况,如数据库使用gb2312而PHP脚本或HTML页面使用utf8,这将导致乱码。解决这类问题的关键在于统一整个系统的字符编码设置,确保从数据输入到输出的每个环节都...

    php中header设置常见文件类型的content-type

    同时,如果想要在页面跳转前执行一些代码,可以在header函数前添加输出语句(如echo或print),但一旦有任何实际输出(哪怕是空格或换行符)发送到浏览器,就不能再使用header函数进行重定向或设置Content-Type了。...

    网页编码手册大集合

    本资源“网页编码手册大集合”是一个综合性的学习资料包,包含了这些核心领域的详细介绍,适用于初学者和有经验的开发者。 HTML是网页内容的骨架,用于定义网页的结构和意义。`Page w3school(5.0).CHM`很可能源自...

    两种设置php载入页面时编码的方法

    在实际开发过程中,可以根据具体需求选择合适的方法,或者将二者结合使用,以确保网页的编码设置得到最佳的处理效果。在多语言网页中,正确的编码设置更是保证用户能够正确查看内容的基础,对提升用户体验至关重要。

    PHP 开发中的中文编码问题

    在PHP开发中,中文编码问题是一个常见的挑战,尤其是在涉及数据库存储和页面展示时。这个问题的核心在于字符编码的不一致和转换...通过细致的调试和适当的编码设置,可以有效地解决这些问题,实现中文内容的正确显示。

    php header函数的常用http头设置

    通过调用`header`,我们可以控制浏览器如何处理当前的网页,实现如重定向、设置状态码、控制缓存等高级功能。以下是对`header`函数在HTTP头设置中的常见用法的详细解释: 1. **状态码设置**: - `header('...

    php设置编码格式的方法

    1. **GBK编码设置:** - PHP中,通过`header()`函数发送HTTP头部信息来指定编码,例如: ```php header("Content-Type: text/html; charset=gb2312"); ``` - 对于静态HTML页面,应在`&lt;head&gt;`标签内添加`&lt;meta&gt;`...

    字符编码过滤器

    例如,可以创建一个`EncodingUtils`类,包含静态方法`applyEncodingFilter()`,该方法接受`ServletRequest`和`ServletResponse`作为参数,执行编码设置操作。这样,即使在不支持过滤器的环境中,也能灵活地使用这个...

    JSP获取HTTP header信息(request)例子

    - `request.getCharacterEncoding()`: 返回请求的字符编码集,如果未设置则返回`null`。 - `request.getContentLength()`: 返回请求体的长度,如果请求没有实体则返回`-1`。 - `request.getContentType()`: 返回...

    PHP Header用于页面跳转时的几个注意事项

    在某些环境下,如果没有正确设置响应的编码,可能会导致页面加载不正确,或者出现乱码。解决这个问题通常需要调整HTTP响应头,例如设置Content-Type为`text/html; charset=utf-8`。 5. PHP中的header()跳转与ASP中...

    php出现Cannot modify header information问题的解决方法大全

    如果使用IDE,可以检查“文件编码”设置,确保没有BOM。 2. **关闭错误报告**:在代码开头临时关闭错误报告,如`error_reporting(0); ini_set('display_errors', 0);`,这可以避免错误消息导致的头信息输出。 3. **...

    设置php页面编码的两种方法示例介绍

    另一种设置页面编码的方法是通过PHP的内置函数`header()`。这个函数允许我们在响应头中设置各种信息,包括Content-Type,即页面的MIME类型和字符编码。以下是如何使用`header()`函数的例子: ```php // 在PHP MVC的...

    PHP中header函数的用法及其留意事项详解_.docx

    设置页面的MIME类型和字符编码,如: ```php header('Content-Type:text/html;charset=utf-8'); ``` 这有助于确保浏览器正确解析和显示内容。 **用法3:返回HTTP响应状态码** 通过`header()`设置HTTP响应状态码,...

Global site tag (gtag.js) - Google Analytics