python字元編碼

2021-09-20 22:07:46 字數 845 閱讀 2137

python字元編碼

最早的字元編碼標準:ascii

127個字元,沒有中文

1個英文本母需要1個位元組

8個位=1位元組

1024位元組=1kb

1024kb=1mb

後來為了擴充套件中文支援,出現了gb2312、gbk後來出現unicode

把所有語言統一到一套編碼裡

每個字元占用2個位元組

最後出現utf-8 (unicode的壓縮和優化)

1個英文 1個位元組

1個中文 3個位元組

python3.x 預設unicode編碼,預設支援中文

python3.x 輸入英文用的ascii編碼,占用1個位元組。

python3.x 輸入中文用utf-8編碼,占用3個位元組。

python2.x 預設ascii編碼,無法支援中文

支援中文方式:

#!/bin/bash/env python    #直譯器

#_*_ coding:utf-8 _*_     #支援中文,用utf-8格式編碼中文。

encode 編碼

decode 解碼

python3.x socket傳輸資料必須是 二進位制 才能傳輸。

b開頭是 二進位制bytes型別。

轉換舉例:

msg = "你好"

print(msg.encode(encoding="utf-8"))   括號裡不指定編碼,預設使用utf-8編碼

print(msg.encode(encoding="utf-8").decode(encoding="utf-8"))

python2.x會以系統預設編碼進行編碼

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...