设计、网站、推广
始于2004年
当前位置:首页 > 网站制作

HTML与javascript中常用编码浅析

发表日期:2009-1-13 作者来源:派谷网络 浏览次数:0

    在日常的前端开发工作中,我们会经常的与HTML、javascript、css等语言打交道,和一门真正的语言一样,计算机语言也有它的字母表、语法、词法、编码方式等,在这里我简单的谈一下前端HTML与javascript日常工作中常碰到的编码问题。

    在计算机中,我们储存的信息都是用二进制码表示的。我们认识的、屏幕上显示的英文、汉字等符号和储存用的二进制代码的互相转换,就是编码。

    有两个基本概念需要说明,charset 和 character encoding:

    charset ,字符集,也就是某个符号和某个数字映射关系的一个表,也就是它决定了107 是koubei 的 ‘a’,21475 是口碑的“口”,不同的表有不同的映射关系,如 ascii,gb2312,Unicode. 通过这个数字和字符的映射表,我们可以把一个二进制表示的数字转换成某个字符。

    chracter encoding ,编码方式。例如,同是对于应“口”的 21475 这个数,我们是用 \u5k3e3 表示呢,还是用 %E5%8F%A3 来表示呢?这就是由 character encoding 来决定的。

    对于 ‘sheji369.com’ 这样的 字符串来说,是美国人的常用字符,他们就制定了一个 叫做ASCII 的字符集,全称是 american standard code of information interchange 美国标准信息交换码,用0–127这128个数字,(2的7次方,0×00-0×7f) 代表了123abc这样的常用的128个字符。一共是 7 bits,再加上第一个是符号位,要用来去补码反码表示负数什么的,一共8 bits 构成一个 byte。当年美国人就是小气了点,要是一开始就设计成一个 byte 是16 bits、32 bits,世界上会少很多问题,不过当时,估计他们觉得 8 bits 就够了,可以表示128个不同的字符呢!

    介于计算机这玩意儿是美国人搞出来的,所以他们自己省事,把自家用的符号都编码好了,用的挺爽的。但当计算机开始国际化的时候,问题出来了,拿中国举例吧,汉字就好几万,怎么办?

    现有的 8 bits 一个 byte 的系统是基础,不能破坏,不能去改到 16 bits之类的,否则改动太大了,只能走另一条路:用多个 ascii 的字符去表示一个其他字符,也就是 MBCS ( Multi-Byte Character System,多字节字符系统)。

    有了这个 MBCS 的概念,我们可以表示更多个字符了,比如我们用 2 个 ascii 字符,就有 16 bits, 理论上有 2 的 16 次方 65536 个字符。但这些编码怎么分配到字符上呢?比如口碑的”口”的 Unicode 编码就是 21475,谁决定的呢?字符集,也就是刚刚介绍的charset。ascii就是最基础的一个字符集,在此之上,我们有类似于 gb2312, big5这样针对简体中文和繁体中文的MBCS的字符集等等。终于有个叫 Unicode Consortium 的机构,决定做一个囊括所有字符在内的字符集(UCS, Universal Character Set)和对应编码方式的标准,即 Unicode。从1991年开始,它发布了第一版 Unicode 国际标准,ISBN 0-321-18578-1 ,国际标准化组织 ISO 也参与了这个的定制,ISO/IEC 10646 : the Universal Character Set。总之,Unicode 是个基本覆盖了所有已经存在的地球上的符号的字符标准了,现在正在被越来越广泛的使用,ECMA 标准也规定,javascript语言的内部字符使用 Unicode 标准(这意味着,javascript的变量名、函数名等是允许中文的!)。

    对于身在中国的开发者来说,可能碰到比较多的问题就是 gbk, gb2312, utf-8 之间转换之类的问题了。严格的说这个说法不是很准确,gbk,gb2312是字符集 (charset),而 utf-8 是一种编码方式 (character encoding) ,是 Unicode 标准中 UCS 字符集的一种编码方式,因为使用 Unicode 字符集的网页主要用UTF-8编码,所以大家常常就把它们并列了,其实是不准确的。

    有了 Unicode 后,至少人类文明没有碰到外星人之前,这是一把万能钥匙了,都用它吧。而现在使用最广泛 Unicode 的编码方式就是 UTF-8 (8-bit UCS/Unicode Transformation Format) 了,它有几个特别好的地方:

    编码 UCS 字符集,全世界通用

    是一种变长编码方式(variable-length character encoding),兼容 ascii

    第二点是个很大的优点,它使得以前使用纯 ascii 编码的系统兼容,而且不会增加额外的存储量(假设定长的编码方式,规定每个字符由2个 bytes 组成,那么这时候 ascii 字符占用的存储空间将增大一倍)。

本文章系本站编辑转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!

相关网站设计案例

相关推荐新闻

缂冩垹鐝張宥呭閸c劎娈戠紒瀛樺Б缁狅紕鎮�...

缂冩垹鐝張宥呭閸c劎娈戠紒瀛樺Б缁狅紕鎮婇弰顖溾€樻穱婵堢秹缁旀瑧菙鐎规哎鈧礁鐣ㄩ崗銊b偓渚€鐝弫鍫g箥鐞涘瞼娈戦崗鎶芥暛瀹搞儰缍�...

閺冦儲婀¢敍锟�2025-4-3

缂冩垹鐝弫鐗堝祦鎼存挸鐣ㄩ崗銊ф畱鐢瓕顫嗘繛锟�...

缂冩垹鐝弫鐗堝祦鎼存挸鐣ㄩ崗銊╂桨娑撳娼冩径姘鳖潚鐢瓕顫嗘繛浣藉剨閿涘矁绻栨禍娑樷枆閼充礁褰查懗钘夘嚤閼峰瓨鏆熼幑顔界闂囧眰鈧拷...

閺冦儲婀¢敍锟�2025-4-3

缂冩垹鐝弫鐗堝祦鎼存挾娈戠€瑰鍙忕拋鎹愵吀闂傦拷...

缂冩垹鐝弫鐗堝祦鎼存挸鐡ㄩ崒銊ф絻婢堆囧櫤闁插秷顩﹂惃鍕殶閹诡噯绱濇俊鍌滄暏閹磋渹淇婇幁顖樷偓浣锋唉閺勬捁顔囪ぐ鏇樷偓浣风瑹閸斺剝鏆�...

閺冦儲婀¢敍锟�2025-4-3

缂冩垿銆夐崚鏈电稊鐢摜鏁ゅ銉ュ徔閸滃本濡ч張锟�...

缂冩垿銆夐崚鏈电稊濞戝寮烽崚鏉款樋娑擃亞骞嗛懞鍌︾礉娴犮儰绗呮稉杞扮稑娴犲绮涚敮鍝ユ暏閻ㄥ嫬浼愰崗宄版嫲閹垛偓閺堫垽绱扮敮鍝ユ暏瀹革拷...

閺冦儲婀¢敍锟�2025-4-2

缂冩垹鐝拋鎹愵吀閼规彃鍍甸幖顓㈠帳閸樼喓鎮�...

缂冩垹鐝拋鎹愵吀娑擃厾娈戦懝鎻掑兊閹碱參鍘ら崢鐔烘倞濞戝寮锋径姘嚋閺傚綊娼伴敍灞芥値閻炲棜绻嶉悽銊ㄧ箹娴滄稑甯悶鍡楀讲娴犮儱鍨�...

閺冦儲婀¢敍锟�2025-4-2

网站建设解决方案
缂冩垹鐝紒瀛樺Б鐟欙絽鍠呴弬瑙勵攳 娴间椒绗熼梻銊﹀煕缂冩垹鐝梿鍡欏閸栨牞袙閸愯櫕鏌熷锟� 閽€銉╂敘閸ㄥ缍夌粩娆捫掗崘铏煙濡楋拷 閸忔槒鈧線娅岀悰灞肩瑹缂冩垹鐝楦款啎鐟欙絽鍠呴弬瑙勵攳 閸栧娅岀拠濠冨缂冩垹鐝楦款啎鐟欙絽鍠呴弬瑙勵攳 閹靛婧€閺佹壆鐖滅悰灞肩瑹缂冩垹鐝楦款啎閺傝顢� 婢舵牞閿ら崗顒€寰冪純鎴犵彲瀵ら缚顔曠憴锝呭枀閺傝顢� 闁叉垼鐎虹純鎴犵彲瀵ら缚顔曠憴锝呭枀閺傝顢� 鐞涘奔绗熼崡蹇庣窗缁崵缍夌粩娆忕紦鐠佹崘袙閸愯櫕鏌熷锟� 閸濅胶澧濈€规ḿ缍夌純鎴犵彲瀵ら缚顔曢弬瑙勵攳