- Python入門很輕松(微課超值版)
- 云尚科技
- 544字
- 2020-09-01 15:58:04
5.2 字符串的編碼轉(zhuǎn)換

微視頻
在Python 3.x中,默認(rèn)采用的編碼格式為UTF-8。采用這種編碼有效地解決了中文亂碼的問題。UTF-8是國際通用編碼,采用1字節(jié)表示英文字符,3字節(jié)表示中文。
在Python中,有兩種常用的字符串類型,分別為str和bytes。其中,str表示Unicode字符;bytes表示二進(jìn)制數(shù)據(jù)。這兩種類型的字符串不能拼接在一起使用。str在內(nèi)存中以Unicode表示,一個(gè)字符對(duì)應(yīng)若干字節(jié)。如果在網(wǎng)絡(luò)上傳輸或者保存在磁盤上,就需要把str轉(zhuǎn)換成bytes類型,既字節(jié)類型。
☆大牛提醒☆
bytes類型的數(shù)據(jù)是帶有b前綴的字符串。例如,b'\xe4\xba\xba\xe7\x94\x9f\xe8就是bytes類型的數(shù)據(jù)。
str類型和bytes類型之間可以通過encode()和decode()方法進(jìn)行轉(zhuǎn)換,這兩個(gè)方法是互逆的過程。
encode()方法以指定的編碼格式編碼字符串。語法格式如下:
str.encode(encoding='UTF-8',errors='strict')
參數(shù)encoding為要使用的編碼方式,默認(rèn)值為UTF-8;參數(shù)errors可以指定不同的錯(cuò)誤處理方案。該方法返回編碼后的字符串。
☆大牛提醒☆
encode()方法只是修改了字符串的編碼方式,并不會(huì)修改字符串的內(nèi)容。
decode()方法以指定的編碼格式解碼bytes對(duì)象。語法格式如下:
bytes.decode(encoding="utf-8", errors="strict")
參數(shù)encoding為要使用的編碼方式,默認(rèn)值為UTF-8;參數(shù)errors可以指定不同的錯(cuò)誤處理方案。該方法返回解碼后的字符串。
【例5.4】字符串的編碼和解碼(源代碼\ch05\5.4.py)。
str = "人生苦短我學(xué)Python"; str_utf8 = str.encode("UTF-8") str_gb2312 = str.encode("GB2312") print(str) print("UTF-8 編碼:", str_utf8) print("GB2312編碼:", str_gb2312) print("UTF-8 解碼:", str_utf8.decode('UTF-8','strict')) print("GB2312 解碼:", str_gb2312.decode('GB2312','strict'))
程序運(yùn)行結(jié)果如圖5-4所示。

圖5-4 例5.4的程序運(yùn)行結(jié)果
- SpringMVC+MyBatis快速開發(fā)與項(xiàng)目實(shí)戰(zhàn)
- Rust編程從入門到實(shí)戰(zhàn)
- Cassandra Design Patterns(Second Edition)
- Elastic Stack應(yīng)用寶典
- Amazon S3 Cookbook
- Jupyter數(shù)據(jù)科學(xué)實(shí)戰(zhàn)
- WCF技術(shù)剖析(卷1)
- 基于MATLAB的控制系統(tǒng)仿真及應(yīng)用
- jMonkeyEngine 3.0 Beginner’s Guide
- 軟件測(cè)試
- Access 2010數(shù)據(jù)庫教程(微課版)
- 精通Django 3 Web開發(fā)
- Mastering Social Media Mining with R
- Unity 5.x 2D Game Development Blueprints
- “笨辦法”學(xué)Python 3