計算機中的編碼和字符集:理解二進位制、位元組流和常見編碼方案

NWGDK發表於2023-04-05

編碼:將字串轉換到位元組串的過程。
解碼:將位元組串轉換成字串的過程。

GB2312 既是一種中文字符集,也是以 ANSI 標準為基礎,實現的中文編碼方案。它主要用於簡體中文編碼,是中國國家標準,於1981年釋出。GBK 是 GB2312 的超集。

Unicode是一種字符集,定義了所有字元的唯一識別符號(碼點),同時也規定了這些字元的名稱、屬性等後設資料。Unicode標準則是為了保證字元在各種不同的平臺、應用和語言之間的互通性而制定的。

UTF-8是Unicode字符集的一種編碼方案,它將Unicode字元以一至四個位元組的可變長度進行編碼,可以在保證完整性的同時,對ASCII字元進行相容處理。因此,UTF-8成為了目前最常用的Unicode編碼方案之一。

透過上面的知識,我們可以總結出以下結論:

在計算機中儲存的檔案,一般都是以位元組流的形式儲存的,底層基礎是二進位制。當我們透過16進位制檢視器開啟檔案時,其實是將二進位制數按照16進位制數的方式進行顯示。在進行傳輸時,也是以二進位制流的形式進行傳輸。開啟一個檔案其實是將位元組流(不過是一種數字表現形式,本質上和 int 沒什麼區別)轉換為字串的過程,這個過程需要使用特定的“編碼方案”進行解碼。同樣,儲存一個檔案其實也是一個編碼的過程,也需要特定的“編碼方案”進行編碼。常用的檔案編碼格式“UTF-8”是 Unicode 字符集編碼方案之一,同時也是 Unicode 標準的實現。

• 計算機中儲存的檔案一般是以位元組序列的形式儲存的,而位元組序列通常都是二進位制的。因此,我們可以說計算機中儲存檔案的底層基礎是二進位制。
• 在傳輸檔案時,常常使用的是二進位制流的傳輸方式,因為位元組流本身就是一種二進位制的表現形式。
• 當我們開啟一個檔案時,程式需要將檔案中的位元組流轉換為字串進行處理,這個過程需要使用特定的字元編碼(例如UTF-8、GBK等)進行解碼。相反,當我們儲存一個檔案時,程式需要將字串轉換為位元組流進行儲存,這個過程需要使用特定的字元編碼進行編碼。
• 除了UTF-8之外,還有其他常見的字元編碼格式,例如UTF-16、GB2312、ISO-8859-1等。

在計算機領域中,”碼“這個字通常指的是編碼方案,也就是將字元轉換為二進位製表示的方式。而二進位制碼或位元組碼通常是指在計算機中儲存和處理資料時所用的二進位製表示形式。

我們可以將計算機儲存的二進位制數透過特定的編碼方案(如UTF-8)轉換為可讀的字元,這個過程稱為解碼。同樣地,我們也可以將字元透過編碼方案轉換為二進位制數,這個過程稱為編碼。在計算機內部,所有的資料都是以二進位制形式進行處理的,無論是儲存、傳輸還是計算等操作都是基於二進位制的。

相關文章