字符集 編碼 URL編碼 base64編碼

2021-08-20 09:00:33 字數 1869 閱讀 3905

新加:

url encode/ decode: 主要用於解決url中包含的非法字元,比如中文等

base64: 簡單的加密,把字元加密成二機制資料

md5:一般為不可逆的加密演算法

1. ascii碼

等中國人們得到計算機時,已經沒有可以利用的位元組狀態來表示漢字,況且有6000多個常用漢字需要儲存呢。但是這難不倒智慧型的中國人民,我們不客氣地把那些127號之後的奇異符號們直接取消掉, 規定:乙個小於127的字元的意義與原來相同,但兩個大於127的字元連在一起時,就表示乙個漢字,前面的乙個位元組(他稱之為高位元組)從0xa1用到0xf7,後面乙個位元組(低位元組)從0xa1到0xfe,這樣我們就可以組合出大約7000多個簡體漢字了。在這些編碼裡,我們還把數學符號、羅馬希臘的字母、日文的假名們都編進去了,連在 ascii 裡本來就有的數字、標點、字母都統統重新編了兩個位元組長的編碼,這就是常說的"全形"字元,而原來在127號以下的那些就叫"半形"字元了。

中國人民看到這樣很不錯,於是就把這種漢字方案叫做"gb2312"。gb2312 是對ascii 的中文擴充套件。

3. unicode

由於世界各地都產生了自己的編碼方案,這是給人的溝通帶來了巨**煩。於是有乙個叫做iso的國際組織開始著手解決這個問題,想用一種規範來表示出所有的語言。於是unicode就這樣產生了。unicode是記憶體編碼表示方案(是規範),而utf是如何儲存和傳輸unicode的方案(是實現)這也是utf與unicode的區別。

3. utf

utf是 unicode transformation format的縮寫。是unicode的一種實現方案。任何文字在unicode中都對應乙個值,這個值稱為**點也叫碼位(codepoint)。**點的值通常寫為:u+abcd

public class test1   

}

4. hexstring將記憶體中的每個位元組轉換為兩個十六進製制的數,0001對應1,0011對應3以此類推,所以經過這樣的轉換乙個位元組的資訊實際上要用兩個位元組來儲存。

乙個多位的整數將按照其儲存位址的最低或最高位元組排列。如果最低有效位在最高有效位的前面,則稱小端序;反之則稱大端序。在網路應用中,位元組序是乙個必須被考慮的因素,因為不同機器型別可能採用不同標準的位元組序,所以均按照網路標準轉化。

5. base64編碼

base64 是網路上常見的用於傳輸8bit位元組**的編碼方式之一,可以將二進位制轉為「字串」。在應用程式中常常需要把二進位制資料編碼為適合放在url中的形式,此時採用base64編碼具有不可讀性,即所編碼的資料不會被人用肉眼直接看到。

6. url編碼

ios中http請求遇到漢字的時候,需要轉化成utf-8,用到的方法是:資料請求是url含有中文,需要轉碼為utf8

nsstring * encodingstring = [urlstring stringbyaddingpercentescapesusingencoding:nsutf8stringencoding];
請求後,返回的資料,如何顯示的是這樣的格式:%3a%2f%2f,此時需要我們進行utf-8解碼,用到的方法是:

nsstring *str = [model.album_name stringbyreplacingpercentescapesusingencoding:nsutf8stringencoding];

字符集 編碼

字符集概念 1 字符集 可以表示的字元和字元對應計算機位元組碼的對映 2 字元編碼方式 計算機中用來表示和傳輸如前所述字符集中對映的位元組碼的編碼方式。對於ascii和gb2312等字符集,他們在傳輸和計算機表示時的位元組碼不用編碼,直接用字元對應的位元組碼表示。但比如unicode 字符集,就有多...

字符集編碼

喬哥 小萌,聽說你去面試了,怎麼樣啊?小萌 哎 喬哥,你給我講講什麼是字符集和編碼唄,ascii,utf 8,utf 16,utf 32又是啥?喬哥 好的,在搞懂字符集先來講講什麼是編碼吧 在計算機底層,比如說你的名字 小萌 在計算機中並不是文字的形式,而是一串二進位制數字,如 0110011001...

字符集編碼

references 字元編碼中ascii unicode和utf 8的區別 ascii碼 unicode編碼 utf 8編碼的區別 條目ascii unicode utf 8 占用byte數 12,不常用的字元占用4個 變長的編碼方式,將乙個unicode字元編碼成1 6個字元。常用的英文本母被編...