JavaScript字元集編碼與解碼

來源:互聯網
上載者:User

標籤:sci   不同   lock   進位   編碼解碼   函數   isp   符號   需要   

一、字元集

1)字元與位元組(Character)

字元是各種文字和符號的總稱,包括亂碼;一個字元對應1~n個位元組,一位元組對應8位,每位用0或1表示。

 

2)字元集(Character Set)

字元集是多個字元的集合,每個字元集包含的字元個數不同,常見字元集名稱:ASCII字元集、GB2312字元集、Unicode字元集等。

 

3)字元集編碼(Character Encoding)

字元集編碼就是將符號轉換為電腦可讀的二進位,解碼就是把二進位轉換為人類可讀的符號。

字元集大多對應一種編碼方式(例如GBK對應GBK編碼),但Unicode編碼有多種,包括UTF-8、UTF-16、UTF-32和UTF-7。

目前網頁用的最多的就是“UTF-8”,UTF-8使用一至四個位元組為每個字元編碼,是ASCII的一個超集,所以現存的ASCII文本不需要轉換

 

二、瀏覽器進位

1)HTML 屬性中使用十進位和十六進位

十進位在HTML中可使用“8”,十六進位,則使用“Z”,比十進位多了個x,進位碼中也多了a~f這6個字元來表示10~15。

 

2)CSS屬性中使用十進位和十六進位

CSS相容HTML的進位形式,除此之外,十六進位還可以使用“\6c”的形式來表示。

 

3)JavaScript編碼封裝

可以直接通過eval執行字串八進位和十六進位兩種編碼方式,其中八進位用“\56”表示,十六進位用“\x5c”表示。

如果代碼中應用了漢字並且需要進行進位編碼,那麼只能進行十六進位Unicode編碼,其表示形式為:“\u4ee3\u7801”。

在“Web前端駭客技術揭秘”中經封裝了兩個方法來做編碼和解碼,主要用到了下面兩個方法,具體代碼可查看此處。

核心代碼是:“str.charCodeAt(char).toString(進位)”與“String.fromCharCode(parseInt(code,進位))

charCodeAt() 方法返回0到65535之間的整數,表示給定索引處的UTF-16代碼單元

靜態String.fromCharCode() 方法返回使用指定的Unicode值序列建立的字串。

還可以通過一個線上網頁進行編碼解碼“MonyerJS”。

4)HTML自動解碼機制

例如在網頁中輸入16進位的“Hello”,自動就會解碼為“hello”。

還有一些比較熟知的空格“ ”也是這種機制。

 

三、瀏覽器編碼

JavaScript中有三對可以對字串編碼解碼的函數,分別是:

escape/unescape、encodeURI/decodeURI、encodeURIComponent/decodeURIComponent。

主要的區別還是不編碼的字元個數。

1)escape不編碼的字元有69個

*、+、-、.、/、@、_、0~9、a~z、A~Z而且escape對0~255以外的unicode值進行編碼時輸出%u****格式。

 

2)encodeURI不編碼的字元有82個

!、#、$、&、‘、(、)、*、+、,、-、.、/、:、;、=、?、@、_、~、0~9、a~z、A~Z

 

3)encodeURIComponent不編碼的字元有71個

!、‘、(、)、*、-、.、_、~、0~9、a~z、A~Z

 

 

 

參考資料:

字元集和字元編碼(Charset & Encoding)

瀏覽器的進位常識

 

JavaScript字元集編碼與解碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.