關(guān)于編碼

一、escape,encodeURI,encodeURIComponent

1. escape 方法描述

對(duì) String 對(duì)象編碼以便它們能在所有計(jì)算機(jī)上可讀

語(yǔ)法: escape(charstring)
返回:經(jīng)過(guò)Unicode編碼的新字符串
適用: 對(duì)非URL的字符串編碼

說(shuō)明
escape 返回一個(gè)包含了 charstring 內(nèi)容的新的 String 對(duì)象( Unicode 格式), 所有空格、標(biāo)點(diǎn)、重音符號(hào)以及其他非 ASCII 字符都用 %xx 編碼代替,其中 xx 等于表示該字符的十六進(jìn)制數(shù)。
例如,空格返回的是 "%20" 。 字符的值大于 255 的用 %uxxxx 格式存儲(chǔ)。

2. encodeURI 方法

返回編碼為有效的統(tǒng)一資源標(biāo)識(shí)符 (URI) 的字符串。

語(yǔ)法: function encodeURI(URIString : String)

encodeURI 不對(duì)下列字符進(jìn)行編碼:“:”、“/”、“;”和“?”。請(qǐng)使用 encodeURIComponent 對(duì)這些字符進(jìn)行編碼。按字節(jié)轉(zhuǎn)換,格式為%XX,其中 中文為三個(gè)字節(jié)

3. encodeURIComponent 方法

返回編碼為統(tǒng)一資源標(biāo)識(shí)符 (URI) 的有效組件的字符串。

語(yǔ)法 : function encodeURIComponent(encodedURIString : String)

encodeURIComponent 方法將對(duì)所有字符編碼,
請(qǐng)注意,如果該字符串代表一個(gè)路徑,例如 /folder1/folder2/default.html,則其中的斜杠也將被編碼,這樣,當(dāng)該字符串作為請(qǐng)求發(fā)送到 Web 服務(wù)器時(shí)它將是無(wú)效的。如果字符串中包含多個(gè) URI 組件,請(qǐng)使用 encodeURI 方法進(jìn)行編碼。

二、UTF-8,GBK,GB2312

1. UTF8

UTF-8:Unicode TransformationFormat-8bit,允許含BOM,但通常不含BOM。是用以解決國(guó)際上字符的一種多字節(jié)編碼,它對(duì)英文使用8位(即一個(gè)字節(jié)),中文使用24為(三個(gè)字節(jié))來(lái)編碼。
UTF-8包含全世界所有國(guó)家需要用到的字符,是國(guó)際編碼,通用性強(qiáng)。UTF-8編碼的文字可以在各國(guó)支持UTF8字符集的瀏覽器上顯示。

2. GB2312,GBK

GBK是國(guó)家標(biāo)準(zhǔn)GB2312基礎(chǔ)上擴(kuò)容后兼容GB2312的標(biāo)準(zhǔn)。
GBK的文字編碼是用雙字節(jié)來(lái)表示的,即不論中、英文字符均使用雙字節(jié)來(lái)表示,為了區(qū)分中文,將其最高位都設(shè)定成1。GBK包含全部中文字符,是國(guó)家編碼

總結(jié)
簡(jiǎn)單來(lái)說(shuō),unicode、gbk和大五碼就是編碼的值,而utf-8、uft-16之類(lèi)就是這個(gè)值的表現(xiàn)形式。而前面那三種編碼是不兼容的,同一個(gè)漢字,那三個(gè)碼值是完全不一樣的。如"漢"的uncode值與gbk就是不一樣的,假設(shè)unicode為a040、gbk為b030,而uft-8碼,就是把那個(gè)值表現(xiàn)的形式。utf-8碼完全只針對(duì)uncode來(lái)組織的,如果gbk要轉(zhuǎn)urf-8必須先轉(zhuǎn)uncode碼,再轉(zhuǎn)utf-8就OK了。

需要注意的是,Unicode只是一個(gè)符號(hào)集,它只規(guī)定了符號(hào)的二進(jìn)制代碼,卻沒(méi)有規(guī)定這個(gè)二進(jìn)制代碼應(yīng)該如何存儲(chǔ),互聯(lián)網(wǎng)的普及,強(qiáng)烈要求出現(xiàn)一種統(tǒng)一的編碼方式。UTF-8就是在互聯(lián)網(wǎng)上使用最廣的一種unicode的實(shí)現(xiàn)方式。其他實(shí)現(xiàn)方式還包括UTF-16和UTF-32,不過(guò)在互聯(lián)網(wǎng)上基本不用。重復(fù)一遍,這里的關(guān)系是,UTF-8是Unicode的實(shí)現(xiàn)方式之一。

參考
https://blog.csdn.net/yhhwatl/article/details/80198810

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是編碼 在計(jì)算機(jī)中,所有的數(shù)據(jù)在存儲(chǔ)和運(yùn)算時(shí),都要使用二進(jìn)制數(shù)(也就是0和1兩個(gè)數(shù))表示。但是,具體使用哪些二...
    _郝琳_閱讀 815評(píng)論 0 0
  • 需要區(qū)分的概念 碼點(diǎn)。字符對(duì)應(yīng)的數(shù)字,唯一定義字符,編碼的基礎(chǔ)。最重要的一個(gè)是Unicode,其中UCS-2子集最...
    小小青蛙不怕風(fēng)吹雨打閱讀 427評(píng)論 0 0
  • 一、關(guān)于編碼 (1)ASCII碼 美國(guó)標(biāo)準(zhǔn)信息交換代碼(American Standard Code for In...
    candy252324閱讀 505評(píng)論 0 0
  • 寫(xiě)在前面 編解碼的問(wèn)題是個(gè)蠻大的概念,網(wǎng)上也搜過(guò)一些資料,講的也都蠻詳細(xì)的,寫(xiě)此一篇也是給自己做個(gè)紀(jì)要,以免日后再...
    素墨月羽閱讀 423評(píng)論 0 0
  • 1. 字符串的編碼形式 字符串的編碼最一開(kāi)始是ascii,使用8位二進(jìn)制表示,因?yàn)橛⑽木褪蔷幋a的全部。后來(lái)其他國(guó)家...
    一杯海風(fēng)_3163閱讀 429評(píng)論 0 1

友情鏈接更多精彩內(nèi)容