當前位置:首頁 » 服務存儲 » utf8二進制存儲
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

utf8二進制存儲

發布時間: 2023-01-08 02:49:41

⑴ ASCII、Unicode 和 UTF-8 的關系是什麼

        因為通電的設備最初只有斷電(0)跟通電(1)兩種狀態,所以計算機裡面所有復雜的事情歸根結底都是由0和1排列組合而成的,因此,要在計算機上顯示文字,必須要讓文字與相應的0和1(即二進制數)相對應起來才行。

        由於最初計算機是美國人發明的,所以最早的對應關系為:f(二進制數) = 英文字元 ,其中英文字元包含數字。這里的對應關系 f 被稱為編碼表(ASCII,1個位元組)。但是隨著計算機的普及,計算機開始被各個國家的人所使用,對於只能表示英文跟數字的 ASCII 並不能滿足大家的需求,例如就不能顯示中文、韓文和日文等其他國家的文字。於是我們中國自己制定了GB2312編碼把中文加進ASCII碼裡面(意思是GB2312兼容ASCII的對應法則,GB2312隻是在ASCII的基礎上進行了擴展),與此同時,其他國家也這么幹了,每個國家都有一套自己的編碼,於是在多語言混合的文本中就會出現亂碼的情況(因為國家與國家基本都不會相互兼容)。

        那為什麼大家不制定一個統一的編碼來兼容世界上所有的語言呢?因此 Unicode 便應運而生,它把所有的語言都統一到了一套編碼裡面,這樣只要大家都用這套編碼的畫,就不會再存在亂碼的情景了。

        但是隨著 Unicode 加入的語言越來越多,編碼所需的位元組越來越多(4個位元組),有時候一篇英文文獻本來用 ASCII 存只需要1k,但是用 unicode 的話,就會增加到4k,這樣在網路上傳輸造成很大的資源浪費,因此本著節約的精神出現了可變長的 UTF-8 編碼,它即兼容 ASCII 和其他語言,也不會造成太多的空間浪費。

        現在存儲的時候一般都會把文本保存成UTF-8的形式存儲下來(因為這樣比較省空間),但是在計算機內存中,也還是統一使用 unicode 編碼,因為 unicode 為定長編碼,對於定長編碼 CPU 的處理效率更高。即計算機從硬碟讀取文本,並將其編碼格式 (UTF-8) 轉換成 Unicode 到 CPU 進行處理,等到處理完畢之後,再將內存裡面 Unicode 編碼的文本轉換成 UTF-8 存到硬碟中。

註:1 位元組 = 8 位