編碼

Base64

-ASCII值-三個二進(jìn)制-四個二進(jìn)制-十進(jìn)制-base64表
所謂Base64,就是說選出64個字符----小寫字母a-z、大寫字母A-Z、數(shù)字0-9、符號"+"、"/"(再加上作為墊字的"=",實際上是65個字符)----作為一個基本字符集。然后,其他所有符號都轉(zhuǎn)換成這個字符集中的字符。
具體來說,轉(zhuǎn)換方式可以分為四步。
第一步,將每三個字節(jié)作為一組,一共是24個二進(jìn)制位。
第二步,將這24個二進(jìn)制位分為四組,每個組有6個二進(jìn)制位。
第三步,在每組前面加兩個00,擴(kuò)展成32個二進(jìn)制位,即四個字節(jié)。
第四步,根據(jù)下表,得到擴(kuò)展后的每個字節(jié)的對應(yīng)符號,這就是Base64的編碼值。
a)二個字節(jié)的情況:將這二個字節(jié)的一共16個二進(jìn)制位,按照上面的規(guī)則,轉(zhuǎn)成三組,最后一組除了前面加兩個0以外,后面也要加兩個0。這樣得到一個三位的Base64編碼,再在末尾補(bǔ)上一個"="號。
b)一個字節(jié)的情況:將這一個字節(jié)的8個二進(jìn)制位,按照上面的規(guī)則轉(zhuǎn)成二組,最后一組除了前面加二個0以外,后面再加4個0。這樣得到一個二位的Base64編碼,再在末尾補(bǔ)上兩個"="號。

Quoted-printable

-ASCII-二進(jìn)制-十六進(jìn)制-加=
主要用于ACSII文本中夾雜少量非ASCII碼字符的情況,不適合于轉(zhuǎn)換純二進(jìn)制文件。
它規(guī)定將每一個8位的字節(jié),轉(zhuǎn)換為3個字符。第一個字符是"="號,這是固定不變的。后面二個字符是二個十六進(jìn)制數(shù),分別代表了這個字節(jié)前四位和后四位的數(shù)值。
舉例來說,ASCII碼中"換頁鍵"(form feed)是12,二進(jìn)制形式是00001100,寫成十六進(jìn)制就是0C,因此它的編碼值為"=0C"。"="號的ASCII值是61,二進(jìn)制形式是00111101,因為它的編碼值是"=3D"。除了可打印的ASCII碼以外,所有其他字符都必須用這種方式進(jìn)行轉(zhuǎn)換。
所有可打印的ASCII碼字符(十進(jìn)制值從33到126)都保持原樣不變,"="(十進(jìn)制值61)除外。

gb2312、utf-8、gbk

GB2312、GBK和UTF-8都是一種字符編碼,除此之外,還有好多字符編碼。簡單的說一下,為什么要用編碼,在計算機(jī)內(nèi),儲存文本信息用ASCII碼,每一個字符對應(yīng)著唯一的ASCII碼。最初計算機(jī)是由美國發(fā)明的,他們也用的是鍵盤和上面的字母,所以他們的字符ASCII好解決。但是我們中國的就不同了,每個漢字要對應(yīng)唯一的ASCII碼。這樣,就出來了國家制定的字符編碼標(biāo)準(zhǔn):GB2312、GBK等。其他國家,其他語言也有他們對應(yīng)的編碼標(biāo)準(zhǔn)。 GB 就是國標(biāo)的意思,GB2312和GBK主要用于漢字的編碼,而UTF-8是全世界通用的

UTF-8:Unicode TransformationFormat-8bit,允許含BOM,但通常不含BOM。是用以解決國際上字符的一種多字節(jié)編碼,它對英文使用8位(即一個字節(jié)),中文使用24為(三個字節(jié))來編碼。UTF-8包含全世界所有國家需要用到的字符,是國際編碼,通用性強(qiáng)。UTF-8編碼的文字可以在各國支持UTF8字符集的瀏覽器上顯示。如,如果是UTF8編碼,則在外國人的英文IE上也能顯示中文,他們無需下載IE的中文語言支持包。

GBK是國家標(biāo)準(zhǔn)GB2312基礎(chǔ)擴(kuò)容后兼容GB2312的標(biāo)準(zhǔn)。GBK的文字編碼是用雙字節(jié)來表示的,即不論中、英文字符均使用雙字節(jié)來表示,為了區(qū)分中文,將其最高位都設(shè)定成1。GBK包含全部中文字符,是國家編碼,通用性比UTF8差,不過UTF8占用的數(shù)據(jù)庫比GBD大。

gb2312、gbk與utf-8都必須通過Unicode編碼才能相互轉(zhuǎn)換

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 原文在這里:各種字符集和編碼詳解 在軟件的編碼和實現(xiàn)中,我們可能會碰到個 一個比較頭疼的問題--編碼,不同字符間的...
    舌尖上的大胖閱讀 1,837評論 0 2
  • 編碼問題一直困擾著開發(fā)人員,尤其在 Java 中更加明顯,因為 Java 是跨平臺語言,不同平臺之間編碼之間的切換...
    x360閱讀 2,506評論 1 20
  • 在說常見的字符編碼(ASCII、gb2312、gbk、utf-8等)之前,我們先來看看編碼的歷史吧。 編碼編年史 ...
    craneyuan閱讀 911評論 4 4
  • 生活中的人形形色色,人際關(guān)系千奇百怪,我們難免遇到一些消耗我們的人。劉瑜曾說過“遠(yuǎn)離消耗你的人,也不要去消耗別人...
    橘子醬佯閱讀 997評論 0 2
  • 盡全力 當(dāng)自己準(zhǔn)備做一件事時,如果開始了,就一定要花精力投入去做。 2014年4月,我和同事一起報名考駕照。報完名...
    孤獨蛇行閱讀 371評論 0 0