Python 字元編碼簡記

2022-03-17 16:02:53 字數 1703 閱讀 5126

名稱

說明ascii

只能存英文和拉丁字元,乙個字元佔乙個位元組,8位。 ascii 碼是不支援中文的,支援中文的第一張表是 gb2312

gb2312

支援中文,收錄了 7445個字元

gbk1.0

支援中文,收錄了 21886個字元

gb18030

收錄了 27484個漢字,及藏文,維吾爾文等少數名族文字

unicode

萬國碼,支援所有國家和地區的編碼,向下相容 gb2312, gbk

utf-32

乙個字元占用4個位元組

utf-16

乙個字元佔2個位元組或2個以上

utf-8

unicode 的擴充套件集,可變長的字元編碼集 (乙個英文用 ascii 來儲存,乙個中文佔3個位元組)

可以簡單的理解為:

1.為了處理英文本元,產生了ascii碼。

2.為了處理中文字元,產生了gb2312。

3.為了處理各國字元,產生了unicode。

4.為了提高unicode儲存和傳輸效能,產生了utf-8,它是unicode的一種實現形式。

注意:

python2.x 預設編碼是 ascii

python3.x 預設編碼是 unicode,所以 python3.x 直接支援中文不需要進行二次處理。

gbk轉換成 utf-8 的流程:

1.通過解碼 (decode) 轉換成 unicode

2.通過編碼 (encode) 轉成成 gbk

亂碼是因為系統編碼與所提供字元的編碼不一致所導致的。所以當我們需要作業系統正確的輸出乙個字元時,除了要知道該字元的字元編碼,也要知道自己系統所使用的字元編碼。

linux 系統大部分使用的是 utf-8 編碼,windoors 系統使用的編碼是 gb2312。

可以通過 chardet 來判斷字元的編碼

安裝步驟:

2. 解壓至安裝目錄

我的電腦為 d:\software\python2.7\lib\site-packages\chardet-3.0.4

3. 開啟 windows 命令列視窗進行安裝

進入原始碼目錄

使用 python setup.py install 安裝

name = '你好'

print(chardet.detect(name))

執行結果:

在py2中

#-*- coding: utf-8 -*-
宣告這句話就是告訴 python2.7 直譯器 (預設acsii編碼方式)解釋的 .py 檔案宣告下面的內容按 utf8 編碼,就是編碼(編碼成位元組串最後轉成0101的形式讓機器去執行) 

參考:

python字元編碼

ascii 碼是乙個位元組,通常只能顯示英文本母和數字。unicode碼為了顯示多種語言產生,但是要占用兩個位元組,顯示文字要占用大量空間 utf 8 為了節約空間而生,英文本元只用乙個位元組儲存,中文字元需要三個位元組 character ascii unicode utf 8 a01000000...

python字元編碼

列印python檔案編碼 import sys print sys.getdefaultencoding 中文的乙個字元unicode占用2個位元組。對在於ascii字元占用1個位元組 utf 8中 中文字元佔3個位元組,英文本元占用1個位元組 編碼和轉碼 unicode不能再解碼了 它是基層的 u...

Python字元編碼

在用python程式設計中,字串有兩種表示方法 string 和 u string 為什麼字串要是用這兩種表達方式。不是僅僅用前一種呢?使用type 函式檢視,它們各自是str物件和unicode物件。這兩個物件有什麼差別嗎?還有經經常使用到的encode 和decode 又是幹什麼的呢?都說pyt...