階段1:
計算機只認識數字,我們在計算機里一切數據都是以數字來表示,因為英文符號有限
所以在規定使用的字節的最高位是0,每一個字節都是以0~127之間的數字來表示,比如A對應65,a對應97。
這就是美國標准信息交換碼-ASCLL。
階段2:
隨着計算機在全球的普及,很多國家和地區都把自己的字符引入了計算機,比如漢字。
此時發現一個字節能表示數字范圍太小,不能包含所有的中文漢字,那么就規定使用兩個字節來表示一個漢字。
規定:原有的ASCLL字符的編碼保持不變仍然使用一個字節表示,為了區別一個中文字符與兩個ASCLL碼字符相區別。
中文字符的每個字節最高規定為1,這個規范就是GB2312編碼,
后來在GB2312的基礎上增加了更多的中文字符,比如漢字,也就出現了GBK。
新的問題,在中國是認識漢字的,但是如果把漢字傳遞給其他國家,該國家的碼表中沒有收錄漢字,其實就顯示了另一個符號或者亂碼。
為了解決各個國家因為本地化字符編碼帶來的影響,咱們就把全世界所有的符號統一進行編碼-Unicode編碼。
此時某一個字符在全世界任何地方都是固定的,比如哥,在任務地方都是以十六進制的54E5來表示。
Unicode的編碼字符都占有2個字節大小。
-----------------------------------------------------------------------------------------------------------------------------------
常見的字符集:
ASCLL:占一個字節,只能包含128個符號,不能表示漢字
ISO-8859-1:(latin-1):占一個字節,收錄西歐語言,不能表示漢字,
ANSI:占兩個字節,在簡體中文的操作系統中ANSI就指的是GB2312。
GB2312/GBK/GB18030:占兩個字節,支持中文。
UTF-8:UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼。由Ken Thompson於1992年創建。現在已經標准化為RFC 3629。 UTF-8用1到6個字節編碼Unicode字符。用在網頁上可以統一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文)。