有关HTML的语言编码详解2010-11-14
前些天写代码时,由于调试了css代码,不想却发现页面未应用上,没有调用上。急的我是满头是汗呐,查看了路径,绝对没错。但是页面就是一直在“裸奔”!后来拿修改后的css跟以前的css样式表进行对比,却发现修改后的css样式表没有写编码声明!当时也是死马当活马医,一传到服务器上,立马就好了!顿时感到自己真是孤陋寡闻了,于是赶紧去网上找了些关于html语言编码资料,跟大家分享一下!
1、编码重要性
编码可导致浏览者通过IE时候网页乱码,也可导致div+css的兼容性Hack。
2、编码的位置
一般这段网页编码放在html网页中的<head>和</head>中间。

注意HTML的语言编码charset
3、html编码样式
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
通过改变charset=utf-8中的utf-8就可以改变网页的编码。
一般我们在写CSS文件时候也需要在CSS文件顶部使用@charset "utf-8";来定义此CSS文件编码类型。一般html源代码和css文件编码要统一,如果不统一会导致CSS hack,页面乱码网页页面排版乱等兼容问题。
4、常用html编码种类
国内常用的流行的有utf-8、gb2312这两种。一般这两种类型就能满足国内网页编码需求。当然程序和数据库中也会用到这两种编码类型来处理网页和存储数据类型。
UTF-8 有一下特性:
1. UCS 字符 U+0000 到 U+007F (ASCII) 被编码为字节 0x00 到 0x7F (ASCII 兼容). 这意味着只包含 7 位 ASCII 字符的文件在 ASCII 和 UTF-8 两种编码方式下是一样的.
2. 所有 >U+007F 的 UCS 字符被编码为一个多个字节的串, 每个字节都有标记位集. 因此, ASCII 字节 (0x00-0x7F) 不可能作为任何其他字符的一部分.
3. 表示非 ASCII 字符的多字节串的第一个字节总是在 0xC0 到 0xFD 的范围里, 并指出这个字符包含多少个字节. 多字节串的其余字节都在 0x80 到 0xBF 范围里. 这使得重新同步非常容易, 并使编码无国界, 且很少受丢失字节的影响.
4. 可以编入所有可能的 231个 UCS 代码
5. UTF-8 编码字符理论上可以最多到 6 个字节长, 然而 16 位 BMP 字符最多只用到 3 字节长.
6. Bigendian UCS-4 字节串的排列顺序是预定的.
7. 字节 0xFE 和 0xFF 在 UTF-8 编码中从未用到.
UTF-8可以通俗理解简体繁体可用此编码如台湾和内地使用此编码。
GB2312 有一下特性:
GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个;同时,GB2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄罗斯语西里尔字母在内的682个全形字符。
GB2312的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖99.75%的使用频率。GB2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。
01-09区为特殊符号。
16-55区为一级汉字,按拼音排序。
56-87区为二级汉字,按部首/笔画排序。
10-15区及88-94区则未有编码。
举例来说,“啊”字是GB2312之中的第一个汉字,它的区位码就是1601。字节结构在使用GB2312的程序中,通常采用EUC储存方法,以便兼容于ASCII。每个汉字及符号以两个字节来表示。第一个字节称为“高位字节”,第二个字节称为“低位字节”。 “高位字节”使用了0xA1-0xF7(把01-87区的区号加上0xA0),“低位字节”使用了0xA1-0xFE(把01-94加上0xA0)。例如 “啊”字在大多数程序中,会以0xB0A1储存。(与区位码对比:0xB0=0xA0+16,0xA1=0xA0+1)。
所以GB2312编码中汉字区码的十进制是从176到247,位码是从161到255.之所以存储了6763小于82*94=6768,是因为在区码为215,位码为250-254之间共五个编码没有汉字编码,所以6768-5=6763个。
GB2312编码可以通俗理解为国内通用的语言。
如果编码混排将使网页乱码也叫不兼容,特别是在CSS注解中使用了编码混排将导致css hack。
希望以后在制作网页的时候千万不要忘记对网页编码的声明。
相关日志 »
-
才知道,看来你做的东西还是少啊!! -
没研究过,什么用什么 -
搞不懂为什么要弄这么多出来
-
不错 学习了
-
原来大家都在用gb2312
现在没办法UTF-8是趋势了 -
路过来看看
-
一直没搞明白他们的区别
-
一直不知道utf8和gb2312 哪种好点.

8条评论 »