位元組,字元,編碼和儲存

2021-06-18 01:03:54 字數 892 閱讀 2947

位元組(octet):是乙個八位的儲存單元,取值範圍一定是0~255。

字元(character):為語言意義上的符號,範圍不一定。例如:a,b,上,中,& 等。

編碼(encode):為每個字元指定乙個數值,同時確定數值的表示方法。

儲存:字元編碼在計算機中儲存方式,big endian:高位元組在前,低位元組在後,little endian:低位元組在前,高位元組在後。

他們之間的關係

編碼是對字元的一種對映,可以有多種方案。最早的一種編碼方案是ascii。主要用於現代英語和西歐語言。在ascii編碼方案中,只說明了0到127分別代表什麼。隨著電腦的普及,需要在電腦中顯示的字元越來越多。為整合全世界的所有語言文字在電腦中的顯示,出現了unicode。在unicode中,乙個字元被對映到乙個叫做碼點(code point)的東西,說白了就是乙個序號。

對每個字元編號以後,在電腦中如何表示呢?這就涉及到編碼的實現。

一種方式是:乙個碼點用2個位元組即16位來表示。這種表示方法就是utf16.

一種方式是:乙個碼點用4個位元組即32位來表示。這種表示方法就是utf32.

一種方式是:乙個碼點用1到4個位元組來表示,這種表示方法就是utf8. 這種表示描述起來有點複雜。

確定了表示的方法,那麼如何儲存呢?

utf-16包括三種:utf-16,utf-16be(big endian),utf-16le(little endian)。

utf-16be和utf-16le不難理解,而utf-16就需要通過在檔案開頭以名為bom(byte order mark)的字元來表明檔案是big endian還是little endian。bom為u+feff這個字元。

與utf-16類似,utf-32也包括utf-32、utf-32be、utf-32le三種編碼,utf-32也同樣需要bom字元。

字元,位元組和編碼

想搞清楚這幾個問題,樓主需要分清楚三個概念 字元 位元組和編碼。比如2d 4e和d6 d0和e4 b8 ad和ff fe 2d 4e是位元組,但是都對應同乙個字元 中 編碼 把字元變成位元組的過程。比如 d6 d0把字元 中 使用gb2312進行編碼的位元組結果。e4 b8 ad把字元 中 使用ut...

字元 位元組的概念和區別 編碼概念

位元組 byte 位元組是通過網路傳輸資訊 或在硬碟或記憶體中儲存資訊 的基本單位。位元組是計算機資訊技術用於計量儲存容量和傳輸容量的一種計量單位,1個位元組等於8位二進位制,它是乙個8位的二進位制數,是乙個很具體的儲存空間。字元人們使用的記號,抽象意義上的乙個符號。比如鍵盤上敲出的數字 字母 各種...

字元和位元組

一 位元組 的定義 位元組 byte 是一種計量單位,表示資料量多少,它是計算機資訊技術用於計量儲存容量的一種計量單位。二 字元 的定義 字元是指計算機中使用的文字和符號,比如1 2 3 a b c 等等。三 位元組 與 字元 它們完全不是乙個位面的概念,所以兩者之間沒有 區別 這個說法。不同編碼裡...