Python 1 字元編碼

2021-10-22 13:58:05 字數 1363 閱讀 1372

進行文字處理時經常遇到這個問題,順手記錄下來

python2 中預設編碼為ascii,但3中則時unicode。

unicode分為utf-32(4byte),utf-16(2byte)(常用), utf-8(1~4byte),但檔案中村的還是utf-8以節省空間。

python3進行encode編碼的同時會主動把string變成bytes型別,而decode解碼則會把bytes型別變為string型別;進行unicode編碼時,乙個中文字元=2個位元組,乙個英文本元=乙個位元組,而ascii不能存中文字元。

utf-8作為unicode的優化,是可變長字元編碼,所有英文本元依然按照ascii進行儲存,但是中文字元統一為3個位元組。

py2unicode充當中介軟體,對gbk以及utf-8都需要首先decode為unicode然後再encode為其他編碼格式

py3預設unicode,對於字元直接encode就行,但是輸入的其他格式的文字依舊需要先解碼再編碼

#! /usr/bin/env python

# __auther__ == luoahong

#無需宣告字元編碼,當然你宣告也不會報錯

s ='你好'

# 字串s已經是unicode編碼,無需decode,直接encode

s_to_gbk = s.encode(

"gbk"

)print

("----s_to_gbk----"

)print

(s_to_gbk)

#這邊還是一樣,gbk需要先解碼成unicode,再編碼成utf-8

gbk_to_utf8 = s_to_gbk.decode(

"gbk"

).encode(

"utf-8"

)print

("-----gbk_to_utf8---"

)print

(gbk_to_utf8)

#解碼成unicode字元編碼

utf8_decode = gbk_to_utf8.decode(

"utf-8"

)print

("-------utf8_decode----"

)print

(utf8_decode)

#輸出---

-s_to_gbk---

-b'\xc4\xe3\xba\xc3'--

---gbk_to_utf8---

b'\xe4\xbd\xa0\xe5\xa5\xbd'--

----

-utf8_decode---

-你好

Python(1) 字串格式化

1。1 字串的格式化 顧名思義 就是讓字串按照自己想要的格式呈現 在python中內建了對字串進行格式化的操作的格式符 也可以看做是佔位符,為真實值預留位置和規定格式。如下面的例子 字串格式 a 3.456 print 7.3f a print 7.3f a 輸出結果 3.456 3.456這裡第乙...

python基礎 8 字元編碼

1 ascii ascii american standard code for information interchange,美國標準資訊交換 是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言,其最多只能用 8 位來表示 乙個位元組 即 2 8 256 1,所以,ascii碼...

python 3字元編碼

在python2中預設是ascii編碼,python3是utf 8編碼 在python 的源 檔案中經常會看到 a 中文 type a str b bytes a,encoding utf 8 bb xe4 xb8 xad xe6 x96 x87 type b bytes 以上的 都在python ...