python字串使用哪種編碼格式?

2022-07-15 10:06:12 字數 1189 閱讀 4049

首先先了解 

我們知道,計算機是以二進位制的形式來儲存資料的,即它只認識 0 和 1 兩個數字。 20 世紀 60 年代,是計算機發展的早期,這時美國是計算機領域的老大,它制定了一套編碼標準,解決了 128 個英文本元與二進位制之間的對應關係,被稱為 ascii 字元編碼(簡稱 ascii 碼)。

ascii 碼,全稱為美國資訊交換標準**,是基於拉丁字母的一套字元編碼,主要用於顯示現代英語,因為全球資訊網的出現,使得 ascii 碼廣為使用,其直到 2007 年 12 月才逐漸被 unicode 取代。

雖然英語用 128 個字元編碼已經夠用,但計算機不僅僅用於英語,如果想表示其他語言,128 個符號顯然不夠用,所以很多其他國家都在 ascii 的基礎上發明了很多別的編碼,例如包含了漢語簡體中文格式的 gb2312 編碼格式(使用 2 個位元組表示乙個漢字)。

也正是由於出現了很多種編碼格式,導致了「檔案顯示亂碼」的情況。比如說,傳送郵件時,如果發信人和收信人使用的編碼格式不一樣,則收信人很可能看到亂碼的郵件。基於這個原因,unicode 字符集應運而生。

unicode 字符集又稱萬國碼、國際碼、統一碼等。從名字就可以看出來,它是以統一符號為目標的字符集。unicode 對世界上大部分的文字系統進行了整理、編碼,使得電腦可以用更簡單的方式來呈現和處理文字。

注意,在實際使用時,人們常常混淆字符集和字元編碼這兩個概念,我認為它們是不同的:

unicode 字符集可以使用的編碼方案有三種,分別是:

utf-8:一種變長的編碼方案,使用 1~6 個位元組來儲存;

utf-32:一種固定長度的編碼方案,不管字元編號大小,始終使用 4 個位元組來儲存;

utf-16:介於 utf-8 和 utf-32 之間,使用 2 個或者 4 個位元組來儲存,長度既固定又可變。

其中,utf-8 是目前使用最廣的一種 unicode字符集的實現方式,可以說它幾乎已經一統江湖了。

python3中使用的unicode編碼,可以檢視當前環境使用的編碼格式

>>> import sys

>>> sys.getdefaultencoding()

'utf-8'

python3 中提供了 ord,chr函式,實現字元和編碼數字之間的轉換

>>> ord('往')

24448

>>> chr(35695)

'譯'

Python字串編碼

在python中有些特殊的地方是存在兩種字串,分別為str和unicode字串,他們都繼承自basestring。如 s hello world s為str us u hello world us為unicode。使用help str 和help unicode 可以檢視各自說明,他們都有decod...

python字串編碼

常見字元編碼型別 ascii 美國資訊交換標準碼,是目前計算機中最廣泛使用的字符集編碼。每個 ascii 碼以 1 個位元組 儲存,例如數字字元 0 的 ascii 碼是 0110000,十進位制表示為 48。unicode 為解決世界上上百種語言帶來混合 衝突,各國有各國的標準,顯示很容易出現亂碼...

Python字串 編碼

字串str 作用 用來記錄文字資訊 字面值表示方法 用引號括起來的部分都是字串 單引號 雙引號 三單引號 三雙引號 空字串 字串的字面值表示方式 hello hello hello hello 單引號和雙引號的區別 單引號內的雙引號不算結束符 雙引號內的單引號不算結束符 三引號的作用 三引號內可以包...