搞定字符集與字符編碼

1、什麼是字符集?

  字符:文字、符號。包含各個國家文字、標點符號,圖形,數字等

  字符集:多個字符的集合(多個文字、符號的集合),不同字符集包含的字符個數不同。

   

2、什麼是字符編碼?    

 字符編碼:字符集隻字符的集合,不適用於網絡傳輸,計算機想準確處理及向硬盤存儲各種字符集中的文字、符號,需要經過字符編碼,010101的組合對應哪種字符集中的哪些文字,字符編碼就是將文字與符號轉換爲計算機可以接受的數字用於存儲與網絡傳送,就叫字符編碼

 簡單的說,字符編碼就是以二進制的數字來對應字符集中的字符。對字符進行編碼,是信息交流的基礎。


哪些漢字、符號與字母會被收錄在標準中,這個標準就叫字符集。

規定每個“字符”用一個字節還是多個字節存儲,怎樣存儲,這個規定就叫“編碼”。


各個國家和地區在制定編碼標準時,“字符集合”和“編碼”都是同時定製的。因此我們平常說的“字符集”,如:GB-2312,ASCII等,既包含了字符集,也包含了字符編碼。


常用字符集與字符編碼:

ASCII字符集&編碼:

ASCII(American Standard Code for Information Interchange,美國信息交換標準代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語。它是目前最通用的單字節編碼系統。


ASCII字符集:主要包括控制字符(回車、退格、換行等);顯示字符(英文大小寫字符,阿拉伯數字和西文符號)。


ASCII編碼:即將 ASCII 字符集轉換爲計算機可以接受的數字系統的規則。使用 7 位(bits)表示一個字符,能表示的字符個數爲2的7次方=128 個字符,爲了能夠表示更多的歐洲常用字符對 ASCII 進行了擴展,ASCII擴展字符集使用8位(bits)表示一個字符,共可以表示2的8次方= 256 字符。


ASCII缺點:

    ASCII的最大缺點是隻能顯示26個基本拉丁字母、阿拉伯數字與英式標點符號,因此只能用於顯示現代美國英語,升級版 EASCII雖然可以表示西歐語言,但對於其它國家的語言依然無法表示,因此現在蘋果電腦已經改用 Unicode 做爲字符編碼。


GB2312,GB12345字符集&編碼:

計算機發明後很長一段時間,只是應用在美國等一些西方發達國家,ASCII 字符集與編碼能夠滿足這些需求,當計算機進入天朝後,爲了在計算機上顯示中文,必須設計一套編碼規則用於將漢字轉換爲計算機可以接受的數字系統的數。


磚家規定大於127號以後的符號取消,規定:小於127的字符意義不變即還是表示英文,但兩個大於127的字符連在一起時,就表示一個漢字,換句話說一個漢字佔用兩個字節,可以表示出大約7000多個簡體漢字,在這些編碼中,還將數學符號、羅馬希臘的字母、日文的假名都編進去了。


全角與半角?

  全角與半角指的範圍是除漢字以外的其它字符(標點符號、字母、數字等)佔用的位置大小,在計算機屏幕上,一個漢字要佔兩個英文字符的位置,人們把一個英文字符所佔的位置稱爲“半角”,相對地把一個漢字所佔的位置稱爲“全角”。在漢字輸入時,系統提供“半角”和“全角”兩種不同輸入狀態,但對於英文字母、符號和數字這些通用字符就不同於漢字,在半角狀態下輸出,它們被當做英文字符處理;而在全角狀態,它們又可作爲中文字符處理;

  當我們用輸入法時,將輸入法切換到英文狀態輸入到屏幕上的符號是這樣的:,.!?  

  將輸入法切換到中文狀態輸入到屏幕上的符號是這樣的:,。!? 

!!! 英文狀態下輸入的符號,字母數字都是半角,中文狀態下輸出的符號,字母數字都是全角!!!



偉大的 Unicode:(萬國碼)

 與天朝一樣,當計算機傳入世界各國時,各國紛紛制定適合本國語言的字符編碼,這樣在本地使用固然沒有問題,通過網絡傳送到其它國家後,編碼無法互相對應,就會出現亂碼現象。

爲了解決這個問題,國際組織制定了偉大的 Unicode 字符集,收錄進了世界各國的語言,爲每種語言中的每一個字符設定了統一併且唯一的數字編號,以滿足跨語言、跨平臺進行文本轉換,處理的要求。

 它使用4字節的數字來表示每個字母、符號或文字每個數字代表唯一的至少在某種語言中使用的符號。(世界各國的文字、數字、符號加起來已經超過2字節(2的16次方=65535),所以用4字節來表示)其中被幾種語言共用的字符通常使用相同的數字來編碼。

 Unicode在不斷擴增,每個新版本會插入更多的新字符,到目前爲止已經發展到第六版,Unicode 已經包含了超過十萬個字符。Unicode組織由一個非營利性的機構動作,並主導Unicode的後續發展,其目標在於:將既有的字符編碼方案以 Unicode 編碼方案來加以取代,解決不同字符集間不兼容的問題。

注意:Unicode是字符集,UTF-32/UTF-16/UTF-8 是Unicode 字符集的三種字符編碼方案。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章