欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

HTML與javascript常碰到的編碼問題第1/2頁

 更新時間:2008年12月24日 02:09:58   作者:  
在日常的前端開發(fā)工作中,我們會經常的與HTML、javascript、css等語言打交道,和一門真正的語言一樣,計算機語言也有它的字母表、語法、詞法、編碼方式等
在這里我簡單的談一下前端HTML與javascript日常工作中常碰到的編碼問題。
在計算機中,我們儲存的信息都是用二進制碼表示的。我們認識的、屏幕上顯示的英文、漢字等符號和儲存用的二進制代碼的互相轉換,就是編碼。

有兩個基本概念需要說明,charset 和 character encoding:

charset ,字符集,也就是某個符號和某個數(shù)字映射關系的一個表,也就是它決定了107 是koubei 的 ‘a',21475 是口碑的“口”,不同的表有不同的映射關系,如 ascii,gb2312,Unicode. 通過這個數(shù)字和字符的映射表,我們可以把一個二進制表示的數(shù)字轉換成某個字符。
chracter encoding ,編碼方式。例如,同是對于應“口”的 21475 這個數(shù),我們是用 \u5k3e3 表示呢,還是用 %E5%8F%A3 來表示呢?這就是由 character encoding 來決定的。

對于 ‘koubei.com' 這樣的 字符串來說,是美國人的常用字符,他們就制定了一個 叫做ASCII 的字符集,全稱是 american standard code of information interchange 美國標準信息交換碼,用0–127這128個數(shù)字,(2的7次方,0×00-0×7f) 代表了123abc這樣的常用的128個字符。一共是 7 bits,再加上第一個是符號位,要用來去補碼反碼表示負數(shù)什么的,一共8 bits 構成一個 byte。當年美國人就是小氣了點,要是一開始就設計成一個 byte 是16 bits、32 bits,世界上會少很多問題,不過當時,估計他們覺得 8 bits 就夠了,可以表示128個不同的字符呢!

介于計算機這玩意兒是美國人搞出來的,所以他們自己省事,把自家用的符號都編碼好了,用的挺爽的。但當計算機開始國際化的時候,問題出來了,拿中國舉例吧,漢字就好幾萬,怎么辦?

現(xiàn)有的 8 bits 一個 byte 的系統(tǒng)是基礎,不能破壞,不能去改到 16 bits之類的,否則改動太大了,只能走另一條路:用多個 ascii 的字符去表示一個其他字符,也就是 MBCS ( Multi-Byte Character System,多字節(jié)字符系統(tǒng))。
有了這個 MBCS 的概念,我們可以表示更多個字符了,比如我們用 2 個 ascii 字符,就有 16 bits, 理論上有 2 的 16 次方 65536 個字符。但這些編碼怎么分配到字符上呢?比如口碑的”口”的 Unicode 編碼就是 21475,誰決定的呢?字符集,也就是剛剛介紹的charset。ascii就是最基礎的一個字符集,在此之上,我們有類似于 gb2312, big5這樣針對簡體中文和繁體中文的MBCS的字符集等等。終于有個叫 Unicode Consortium 的機構,決定做一個囊括所有字符在內的字符集(UCS, Universal Character Set)和對應編碼方式的標準,即 Unicode。從1991年開始,它發(fā)布了第一版 Unicode 國際標準,ISBN 0-321-18578-1 ,國際標準化組織 ISO 也參與了這個的定制,ISO/IEC 10646 : the Universal Character Set??傊琔nicode 是個基本覆蓋了所有已經存在的地球上的符號的字符標準了,現(xiàn)在正在被越來越廣泛的使用,ECMA 標準也規(guī)定,javascript語言的內部字符使用 Unicode 標準(這意味著,javascript的變量名、函數(shù)名等是允許中文的?。?。

對于身在中國的開發(fā)者來說,可能碰到比較多的問題就是 gbk, gb2312, utf-8 之間轉換之類的問題了。嚴格的說這個說法不是很準確,gbk,gb2312是字符集 (charset),而 utf-8 是一種編碼方式 (character encoding) ,是 Unicode 標準中 UCS 字符集的一種編碼方式,因為使用 Unicode 字符集的網頁主要用UTF-8編碼,所以大家常常就把它們并列了,其實是不準確的。

有了 Unicode 后,至少人類文明沒有碰到外星人之前,這是一把萬能鑰匙了,都用它吧。而現(xiàn)在使用最廣泛 Unicode 的編碼方式就是 UTF-8 (8-bit UCS/Unicode Transformation Format) 了,它有幾個特別好的地方:

編碼 UCS 字符集,全世界通用
是一種變長編碼方式(variable-length character encoding),兼容 ascii
第二點是個很大的優(yōu)點,它使得以前使用純 ascii 編碼的系統(tǒng)兼容,而且不會增加額外的存儲量(假設定長的編碼方式,規(guī)定每個字符由2個 bytes 組成,那么這時候 ascii 字符占用的存儲空間將增大一倍)。

相關文章

  • 面向對象Javascript核心支持代碼分享

    面向對象Javascript核心支持代碼分享

    Javascript做面向對象開發(fā)的時候,總是會用到很多模擬面向對象特性的方法,這些方法就構成了支撐面向對象Javascript的核心代碼
    2012-05-05
  • JavaScript實用代碼小技巧

    JavaScript實用代碼小技巧

    在這篇文章中給大家分享了關于JavaScript實用代碼小技巧的相關內容,有興趣的朋友們可以參考學習下。
    2018-08-08
  • Firefox下無法正常顯示年份的解決方法

    Firefox下無法正常顯示年份的解決方法

    在用Firefox上一些網站會看到這樣的顯示108年1月26日,而IE顯示為2008年1月26日原因是javascrīpt的兼容性問題
    2014-09-09
  • JS實現(xiàn)兩周內自動登錄功能

    JS實現(xiàn)兩周內自動登錄功能

    這篇文章主要為大家詳細介紹了JS實現(xiàn)兩周內自動登錄功能的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • JavaScript 中Date對象的格式化代碼方法匯總

    JavaScript 中Date對象的格式化代碼方法匯總

    JavaScript默認的時間格式我們一般情況下不會用,所以需要進行格式化,下面小編給大家?guī)砹巳Njs date對象格式化實例代碼,需要的朋友參考下吧
    2017-09-09
  • JavaScript實現(xiàn)16進制顏色值轉RGB的方法

    JavaScript實現(xiàn)16進制顏色值轉RGB的方法

    這篇文章主要介紹了JavaScript實現(xiàn)16進制顏色值轉RGB的方法,是javascript比較典型的數(shù)值轉換應用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-02-02
  • 微信小程序跳轉外部鏈接的詳細實現(xiàn)方法

    微信小程序跳轉外部鏈接的詳細實現(xiàn)方法

    寫這個是因為最近小程序的一個需求需要從小程序跳轉到客戶的官網,或者其他外部報名鏈接,下面這篇文章主要給大家介紹了關于微信小程序跳轉外部鏈接的詳細實現(xiàn)方法,需要的朋友可以參考下
    2022-10-10
  • 微信小程序開發(fā)自定義tabBar實戰(zhàn)案例(定制消息99+小紅心)

    微信小程序開發(fā)自定義tabBar實戰(zhàn)案例(定制消息99+小紅心)

    一定的需求情況下無法使用小程序原生的tabbar的時候,需要自行實現(xiàn)一個和tabbar功能一模一樣的自制組件,下面這篇文章主要給大家介紹了關于微信小程序開發(fā)自定義tabBar(定制消息99+小紅心)的相關資料,需要的朋友可以參考下
    2022-12-12
  • javascript基于定時器實現(xiàn)進度條功能實例

    javascript基于定時器實現(xiàn)進度條功能實例

    這篇文章主要介紹了javascript基于定時器實現(xiàn)進度條功能,簡單分析了javascript定時器的功能、使用方法并給出了基于定時器實現(xiàn)的進度條功能實例,需要的朋友可以參考下
    2017-10-10
  • 淺談JS驗證表單文本域輸入空格的問題

    淺談JS驗證表單文本域輸入空格的問題

    下面小編就為大家?guī)硪黄獪\談JS驗證表單文本域輸入空格的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02

最新評論