Web文档编码的指定

Web开发中,文档常常指:(X)HTML文档、XML文档、CSS文档、js文档。指定文档编码的方式有以下几种:

HTTP Header中指定文档编码
在一个典型的HTTP响应头里,Content-Type的值中可以指定文档编码,如:
HTTP/1.1 200 OK
Date Tue, 11 May 2010 04:09:22 GMT
Server Apache
Content-Type text/html; charset=gb2312

对于动态网页,用这种方式指定文档编码,在脚本中直接输出响应头即可:
header( 'Content-type: text/html; charset=gb2312' );

对于静态网页、CSS文件等,则需要在Apache等服务器中配置,例如:
AddType 'text/html; charset=gb2312' html


Content-Type meta元素中指定HTML文档编码
对于HTML文档(或当成HTML解析的XHTML文档),用这种方式指定文档编码,应在<head>标签 里的最上方,加入:
<meta http-equiv="Content-type" content="text/html; />


指定XML文档编码
对于XML文档,如果不指定编码,则一般会按照UTF-8来解析文档。指定编码的方式是在第一行加入:
<?xml version="1.0" encoding="gb2312"?>


HTML5的charset meta元素
我们潮一些,DOCTYPE为HTML5的文档,可以用带有meta标签的charset属性指定文档编码,类似于这 样:
<meta charset="gb2312">


用链接的charset属性指定编码
<a>, <link>, <script>元素都可以带有charset属性,用来指定目标文档的编码。例如:
详见:<a href="../index.html" charset="utf-8">老田的博客</a>。
但一般html的文档都采用其他方式指定编码,所以此方法常用于指定外部script脚本的文档编码,例如:
<script type="text/javascript" src="main.js" charset="gb2312"></script>


使用@charset指定CSS文档编码
如果CSS文档中存在非ASCII字符,为了不让浏览器费力去猜测编码,可以指定CSS文档的编码。一种方式是使用 @charset指定,在CSS文件的第一行:
@charset "utf-8";


编码指定方式的优先级
上述方式指定文档编码,会使用下面的优先级:
1. HTTP响应头的Content-Type
2. XML的首行声明
3. meta标签charset声明
4. 链接的charset属性

例如对于一个CSS文件,它的编码优先级会按照下面的顺序指定:
1. HTTP Content-Type
2. @charset rule
3. <link charset=”..” rel=”stylesheet” … />


总结
本文总结了Web文档(包括HTML, XHTML, XML, CSS, JS)的编码指定方式。比较常见的是(X)HTML文档中用meta标签指定编码,但优先级不如HTTP响应头高。外部js/css文件指定编码的方法也不尽相同,js文件用引用它的script tag charset attribute指定,css文件用文件开头的@charset指定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值