常見編碼形式

2022-08-18 05:03:09 字數 1743 閱讀 7623

字元編碼,通俗的來說,字元編碼就是按照某種格式某種規定將字元儲存在計算機中。

由於計算機是美國人發明的,因此,最早只有127個字元被編碼到計算機裡,也就是大小寫英文本母、數字和一些符號,這個編碼表被稱為ascii編碼,比如大寫字母a的編碼是65,小寫字母z的編碼是122

但是要處理中文顯然乙個位元組是不夠的,至少需要兩個位元組,而且還不能和ascii編碼衝突,所以,中國制定了gb2312編碼,用來把中文編進去。

全世界有上百種語言,日本把日文編到shift_jis裡,南韓把韓文編到euc-kr裡,各國有各國的標準,就會不可避免地出現衝突,結果就是,在多語言混合的文字中,顯示出來會有亂碼。

因此,unicode應運而生。unicode把所有語言都統一到一套編碼裡,這樣就不會再有亂碼問題了。unicode標準也在不斷發展,但最常用的是用兩個位元組表示乙個字元(如果要用到非常偏僻的字元,就需要4個位元組)。現代作業系統和大多數程式語言都直接支援unicode。

ascii編碼和unicode編碼的區別:ascii編碼是1個位元組,而unicode編碼通常是2個位元組,舉例如下。

字母a用ascii編碼是十進位制的65,二進位制的01000001

字元0用ascii編碼是十進位制的48,二進位制的00110000,注意字元'0'和整數0是不同的;

漢字已經超出了ascii編碼的範圍,用unicode編碼是十進位制的20013,二進位制的01001110 00101101

如果把ascii編碼的a用unicode編碼,只需要在前面補0就可以,因此,a的unicode編碼是00000000 01000001

新問題的又出現了,如果統一成unicode編碼,亂碼問題從此消失了。但是,如果你寫的文字基本上全部是英文的話,用unicode編碼比ascii編碼需要多一倍的儲存空間,在儲存和傳輸上就十分不划算。

因此,又出現了把unicode編碼轉化為「可變長編碼」的utf-8編碼。utf-8編碼把乙個unicode字元根據不同的數字大小編碼成1-6個位元組,常用的英文本母被編碼成1個位元組,漢字通常是3個位元組,只有很生僻的字元才會被編碼成4-6個位元組。如果你要傳輸的文字包含大量英文本元,用utf-8編碼就能節省空間。

字元ascii

unicode

utf-8

a01000001

00000000 01000001

01000001中-

00000000 01000001

11100100 10111000 10101101

在計算機記憶體中,統一使用unicode編碼,當需要儲存到硬碟或者需要傳輸的時候,就轉換為utf-8編碼。

瀏覽網頁的時候,伺服器會把動態生成的unicode內容轉換為utf-8再傳輸到瀏覽器:

如何識別一些常見的編碼形式

url 編碼 url編碼就是乙個字元ascii碼的十六進製制。不過稍微有些變動,需要在前面加上 比如 它的ascii碼是92,92的十六進製制是5c,所以 的url編碼就是 5c。那麼漢字的url編碼呢?很簡單,看例子 胡 的ascii碼是 17670,十六進製制是bafa,url編碼是 ba fa...

常見的矩陣形式

前言 記錄經常用到的矩陣形式。a 正交矩陣定義 一實的正方矩陣q rnxn,稱為正交矩陣,若 b 酉矩陣 定義 一實的正方矩陣u cnxn,稱為酉矩陣,若 c vandermonde矩陣 定義 具有以下形式的mxn階矩陣 稱為vandermonde矩陣,其轉置也是vandermonde矩陣。d to...

常見的幾種介面形式

api作為應用程式程式設計介面,可以使用不同的程式語言進行api的開發,另外介面的表現形式也不同,現在最常用的介面形式有以下這些 1 http 介面 restful 基於http協議開發的介面現在應用是最為廣泛的,這類api使用起來簡單明瞭,因為它是輕量級的 跨平台 跨語言的,但凡是第三方提供的ap...