当前位置:网站首页 / 1.零基础学网页前端 / 正文

1-2.网页的编码

时间:2015年03月08日 | 作者 : daPeng | 分类 : 1.零基础学网页前端 | 浏览: 5214次 | 评论 0

我们平常看到的文字都是以一定形式的编码组织在一起的,相同内容的文字可能以不同形式的编码存在,以中文网站为例,用得比较多的一般是GB2312,GBK,UTF-8,Unicode等。

那么,这些不同的编码究竟是怎么产生的呢?笔者这里找到一个不错的链接,介绍给大家:网页编码就是那点事(来源:站长之家,作者:潜行者m),笔者这里引用其中的文字:

  1. 中国人民通过对 ASCII 编码的中文扩充改造,产生了 GB2312 编码,可以表示6000多个常用汉字。

  2. 汉字实在是太多了,包括繁体和各种字符,于是产生了 GBK 编码,它包括了 GB2312 中的编码,同时扩充了很多。

  3. 中国是个多民族国家,各个民族几乎都有自己独立的语言系统,为了表示那些字符,继续把 GBK 编码扩充为 GB18030 编码。

  4.  每个国家都像中国一样,把自己的语言编码,于是出现了各种各样的编码,如果你不安装相应的编码,就无法解释相应编码想表达的内容。

  5. 终于,有个叫 ISO 的组织看不下去了。他们一起创造了一种编码 UNICODE ,这种编码非常大,大到可以容纳世界上任何一个文字和标志。所以只要电脑上有 UNICODE 这种编码系统,无论是全球哪种文字,只需要保存文件的时候,保存成 UNICODE 编码就可以被其他电脑正常解释。 UNICODE 在网络传输中,出现了两个标准 UTF-8 和 UTF-16,分别每次传输 8个位和 16个位。 于是就会有人产生疑问,UTF-8 既然能保存那么多文字、符号,为什么国内还有这么多使用 GBK 等编码的人?因为 UTF-8 等编码体积比较大,占电脑空间比较多,如果面向的使用人群绝大部分都是中国人,用 GBK 等编码也可以。但是目前的电脑来看,硬盘都是白菜价,电脑性能也已经足够无视这点性能的消耗了。所以推荐所有的网页使用统一编码:UTF-8。

一、记事本怎么选择保存编码?

2.jpg

ANSI是美国信息互换标准代码,当时世界上所有的计算机都用同样的ASCII方案来保存英文文字(最早出现的文字编码,GB2312等都是后来发展的)。记事本的编码默认是ANSI, 如果你在ANSI的编码输入汉字,那么他实际就是GB系列的编码方式(ANSI编码会自动使用系统自带编码)。

我们在上一篇文章1.建立网站的根目录中说到用记事本创建网页文件的时候可以进行文件编码的选择,现在我们再来回顾一下:创建新文本文档后,文件菜单——另存为——文件类型改为所有文件,文件编码选择ANSI或者Unicode,UTF-8等,然后再在文件名写上任意英语名称.html保存即可创建相应编码的网页文件。

记事本选择UTF-8编码可能会产生BOM头,关于文件BOM头,站长之家网站文章也有如下的介绍:

当使用类似 WINDOWS 自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。这样就可以避免这个问题了。对于一般的文件,这样并不会产生什么麻烦。 这样做,也有弊处,尤其体现在网页中。PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文 的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来。由此造成即使页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部,因为在html一开头有这3个字符。如果你在网页中,发现了由未知的空白等,很有可能就是由于文件有 BOM 头造成的。遇到这种问题,把文件保存的时候,不要带有 BOM 头!

二、怎么去除BOM头

笔者目前了解的方法就是利用第三方软件notepad++(也是网页编辑软件)上的去除BOM功能。方法:安装notepad++后打开,在格式菜单中点击,选择以UTF-8无BOM方式编码就可以去除BOM了。

三、关于sublime text软件

很多人反应在使用sublime text创建的html文件中,如果直接使用中文,网站会出现乱码。很明显了,这就是网页编码选择不当或者没有选择的问题。

要保持网站出现文字不乱吗,必须保持文件编码,网页编码的统一。文件编码就是网页文件(比如记事本创建HTML文档时候选择的编码),网页编码就是HTML内声明的编码。

sublime text保存的html文档自动为utf-8编码(文件编码),如果网页中不声明编码(默认使用系统编码),则两者不统一,乱码就产生了。那么如何在网页中声明编码呢?方法很简单,只需要在<head></head>间加上meta代码就可以了。如下为示例:

<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
 </head>

最后,谢谢大家的阅读,如果有任何疑问,欢迎提出来。

本文引用部分链接为:http://www.chinaz.com/web/2012/1119/282540.shtml 作者:潜行者m

转载请注明:乐鹏网»1-2.网页的编码
上一篇:1-1.建立网站的根目录
下一篇:2-4.新手学PHP,如何开始?(PHPSTUDY的使用方法)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。