回覆列表
-
1 # Gfilsxin
-
2 # 村中少年
你的這個問題可以分解為兩個問題:
1,什麼是字元編碼
2,計算機如何顯示字元
字元編碼做了兩件事情:
1.規定了每個字元的編號。比如字母a的編號就是0x61,漢字"中"的unicode編號就是0x4e2d。
2.有了編號之後,計算機要儲存這些編號,比如字母a至少需要一個位元組來儲存,漢字"中"至少需要兩個位元組來儲存。這種儲存方式就是具體的編碼實現,例如utf-8以及utf-16就是unicode的儲存實現。不同編碼方式的區別在於儲存一個字元需要的位元組大小不同。
有了字元在計算機中的儲存,那麼計算機如何顯示儲存的數字呢?
計算機任何顯示操作,最終都是在顯示器上描畫素來實現的。也就是說文字字元等資訊全部是畫出來的。
作業系統核心中存在一部字典,儲存著所有字元的外觀資訊和編碼的對映關係,當需要顯示某個字元時,作業系統按照找到字典中對應的字元外觀資訊,將其畫在了螢幕上,就是我們看到的各種字元。
字元編碼就是按照某種格式某種規定將字元儲存在計算機中。
字元編碼非常多,每個國家都有自己規定的字元編碼。作為華人,常用的字元編碼有ASCII、 Unicode、UTF-8、GBK(簡、繁體字融於一庫)、GB2312(簡體中文字符集)、BIG5(繁體中文字符集)。
通俗的說,由於計算機只能儲存“011101”這種二進位制數字,所以當我們在電腦上使用文字編輯工具,如記事本輸入文字(或字母)後,計算機會把這些文字中的每個字轉換成對應的一個數字存入磁碟,這個過程稱為“編碼”。當再次使用記事本開啟檔案後,計算機會把磁碟中的資料轉換成文字顯示,這個過程稱為“解碼”。
舉個例子,假設輸入的文字為“你好”,對應的編碼為“0x5a13 0x89b7”,則再次開啟記事本後,軟體讀取到磁碟上的數為“0x5a13”就會顯示成“你”,讀取到磁碟上的數為"0x89b7"就會顯示成"好"。
最常用的編碼方式就是ASCII(美國標準字元編碼),只能編寫英文的26個字母和一些其它字元,如空格編碼值為32。
英文用ASCII碼就夠了,那中文呢?中文數量可是比英文多得多,這時候Unicode碼這位救世主就出現了,中文主要使用其中的UTF-8進行編碼,每個文字的編碼都是獨一無二的。
希望以上的回答對您有用。