亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Python > 正文

Python字符串處理函數之encode()函數的使用方法

2023-04-25 12:32:04
字體:
來源:轉載
供稿:網友

在Python中使用encode()函數運用指定的編碼方式對字符串進行編碼。

關于編碼的有關知識,本站在《Python中的Unicode編碼格式》一文中進行了詳細介紹,讀者可以通過這篇文章了解有關字符串編碼的問題。

一、Python中encode()函數簡介

在Python中,每個字符串對象都有encode()函數,該函數將按照用戶指定的編碼方式(如UTF-8,UTF-16等)對字符串對象進行編碼,編碼后返回字符串的字節(Bytes)對象,如未指定編碼格式,該函數默認使用“utf-8”編碼方式。

該函數的語法格式如下所示:

str.encode(encoding = "utf-8", errors = "strict")

語法中,str是待編碼的字符串對象。encoding參數給出編碼方式,默認為“utf-8”,errors 參數給出編碼失敗時的錯誤處理方案,默認為“strict”,即嚴格的錯誤處理方案。

Python中的encode()函數

二、基本使用舉例

下面這個例子中使用函數各參數的默認值進行編碼,并輸出編碼前后對象的類型。

str1 = "武林網VEVB"
str_re1 = str1.encode()
print('原字符串:', str1)
print('原字符串類型:', type(str1))
print('轉換后的形式:', str_re1)
print('轉換后的對象類型:', type(str_re1))

輸出結果形式如下:

原字符串: 武林網VEVB
原字符串類型: <class 'str'>
轉換后的形式: b'/xe7/xbf/x94/xe5/xae/x87/xe4/xba/xadIT/xe4/xb9/x90/xe5/x9b/xad'
轉換后的對象類型: <class 'bytes'>
從上面的輸出結果中可以看出,編碼前str1的類型為<class 'str'>,即字符串類型,編碼后的類型為:<class 'bytes'>,即字節類型,同時輸出轉換后的對象我們發現在前面有個字符'b',其表示后面的字符串以字節形式進行存儲。在存儲時,utf-8編碼格式下,漢字占用三個字節,如上面前三個字節(以十六進制形式顯示的):/xe7/xbf/x94,即是字符“翔”的編碼。

三、encode()函數參數encoding的作用

encoding用于指定字符串的編碼方式。

Python自帶了很多編解碼器,這些編解碼器要么以C函數的方式實現,要么以映射表的方式存放到詞典中。

這些內置的編解碼器并非都能運用到每一種語言系統中,運用不正確在解碼時可能會出現所謂的亂碼問題。

str1 = "武林網VEVB"
re1 = str1.encode('utf-8')
re2 = str1.encode('gb2312')
re3 = str1.encode('gbk')
re4 = str1.encode('utf-16')
print('utf-8:', re1)
print('gb2312:', re2)
print('gbk:', re3)
print('utf-16:', re4)

運行結果如下所示:

utf-8: b'/xe7/xbf/x94/xe5/xae/x87/xe4/xba/xadIT/xe4/xb9/x90/xe5/x9b/xad'
gb2312: b'/xcf/xe8/xd3/xee/xcd/xa4IT/xc0/xd6/xd4/xb0'
gbk: b'/xcf/xe8/xd3/xee/xcd/xa4IT/xc0/xd6/xd4/xb0'
utf-16: b'/xff/xfe/xd4/x7f/x87[/xadNI/x00T/x00PN/xedV'
對西文字符也可以使用ASCII編碼方式,如果指定的編碼方式不含相關字符的話,在沒有指定errors參數時,默認會報錯。

re5 = "I Love China!".encode("ASCII")
print("西文ASCII:", re5)
re6 = "沉痛哀悼袁隆平和吳孟超兩位院士。".encode("ASCII")
print("ASCII運用到中文會出錯:", re6)

輸出結果如下:

西文ASCII: b'I Love China!'
Traceback (most recent call last):
  File "D:/01Lesson/PY/encode_detail.py", line 21, in <module>
     re6 = "沉痛哀悼袁隆平和吳孟超兩位院士。".encode("ASCII")
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-15: ordinal not in range(128)
從上面的結果可以看出,漢字運用ASCII編碼方式給出UnicodeEncodeError錯誤,意思是說:'ASCII'編解碼器不能對字符串0~15位置的字符進行編碼,序號超出范圍(最大值128)。

四、encode函數中參數errors的作用

errors參數的作用是在編碼出現錯誤時給出錯誤的處理方式,默認值為'strict',即出現錯誤時將拋出UnicodeError編碼異常錯誤。UnicodeError包含編碼錯誤的描述內容,其具體內容包括引發異常的編碼方式名稱、錯誤原因、編碼對象出現錯誤的起止字符位置。

其它可以使用的值描述如下:

ignore:忽略不能進行編碼的字符,編碼結果中將不會包含不能進行編碼的字符,且不會再給出任何提示信息。

replace:使用問號(?)替換不能進行編碼的字符。

backslashreplace:使用反斜杠(/)開始的轉義字符序列(/uNNNN)來替代不能實現編碼的字符。

xmlcharrefreplace:使用適當的XML字符引用來替換不能實現編碼的字符。其替換后的字符形如:&#NNNNN。

namereplace:使用反斜杠(/)開始的轉義字符名稱序列(/N{...})來替換未能轉換的字符。此值是在Python3.5中新加入的。

下面給出一些例子來演示各種取值的輸出情況:

str2 = "CRY:沉痛哀悼袁隆平院士和吳孟超院士CRY。"
re8 = str2.encode("ASCII",'ignore')
print("re8=", re8)
re9 = str2.encode("ASCII", 'replace')
print("re9=", re9)
re10 = str2.encode("ASCII", 'backslashreplace')
print("re10=", re10)
re11 = str2.encode("ASCII", 'xmlcharrefreplace')
print("re11=", re11)
re12 = str2.encode("ASCII", 'namereplace')
print('re12=', re12)

re7 = str2.encode("ASCII")
print("re7=", re7)

運行結果如下所示:

Python中unicode()函數中errors參數演示結果

上面例子中最后一個是沒有指定errors參數的情況。其它讀者根據例子中的代碼對照結果觀察每個參數的輸出情況。

以上詳細介紹了Python中字符串處理函數encode()的使用方法,并對其兩個參數encoding和errors進行了全面解釋。

本文(完)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
www.美女亚洲精品| 欧美一级大片在线观看| 精品久久久香蕉免费精品视频| 亚洲第一精品电影| 97在线视频观看| 日韩免费av在线| 欧美性69xxxx肥| 疯狂欧美牲乱大交777| 欧美精品久久久久久久免费观看| 国产成人中文字幕| 456国产精品| 亚洲精品久久久久久久久| 九九热99久久久国产盗摄| 欧美成人精品h版在线观看| 欧美色视频日本高清在线观看| 欧洲亚洲免费视频| 欧美精品videossex性护士| 成人免费网视频| 96sao精品视频在线观看| 亚洲国产成人91精品| 中文字幕日韩欧美| 97成人超碰免| 国产精品中文字幕久久久| 日韩视频亚洲视频| 一区二区在线视频播放| 高跟丝袜一区二区三区| 国产欧洲精品视频| 欧美性猛交xxxx久久久| 中文字幕久久久av一区| 欧美乱大交做爰xxxⅹ性3| 亚洲第一色中文字幕| 午夜精品久久久久久久99热| 精品日韩美女的视频高清| 91精品国产综合久久香蕉| 91国语精品自产拍在线观看性色| 社区色欧美激情 | 欧美日韩国产成人在线观看| 欧美不卡视频一区发布| 综合网日日天干夜夜久久| 欧美日韩在线视频首页| 久久不射电影网| 欧美插天视频在线播放| 欧美自拍视频在线| 国产成人激情视频| 97视频在线观看免费| 亚洲精品美女免费| 好吊成人免视频| 亚州国产精品久久久| 亚洲iv一区二区三区| 国产精品视频久久久久| 在线观看欧美成人| 欧美日韩国产精品一区| 国产精品久久色| 欧美尤物巨大精品爽| 91成品人片a无限观看| 亚洲高清福利视频| 欧美日韩成人网| 97成人精品区在线播放| 国产午夜精品理论片a级探花| 久久国产精品免费视频| 福利一区福利二区微拍刺激| 亚洲最新av在线网站| 精品无码久久久久久国产| 久久久免费电影| 欧美激情亚洲自拍| 国内免费精品永久在线视频| 91高清视频免费观看| 影音先锋欧美在线资源| 爽爽爽爽爽爽爽成人免费观看| 中文字幕日韩精品在线观看| 欧美一级免费看| 91人人爽人人爽人人精88v| 亚洲成色999久久网站| 激情久久av一区av二区av三区| 中文字幕国产日韩| wwwwwwww亚洲| 国产精品91免费在线| 亚洲性视频网站| 孩xxxx性bbbb欧美| 91久热免费在线视频| 成人免费网站在线看| 91免费综合在线| 亚洲欧美一区二区精品久久久| 午夜美女久久久久爽久久| 亚洲精品大尺度| 亚洲大胆美女视频| 久久久噜噜噜久久久| 亚洲女人初尝黑人巨大| 久久激情视频免费观看| 亚洲91精品在线观看| 国产精品欧美激情在线播放| 亚洲无av在线中文字幕| 一个人看的www欧美| 亚洲xxxx妇黄裸体| 91精品久久久久久久久久久| 国产一区二区日韩精品欧美精品| 欧美成人免费全部| 欧美视频在线观看免费网址| 久久久国产一区二区三区| 日韩在线免费视频| 高清欧美性猛交xxxx黑人猛交| 精品久久久久久久久久久| 中文字幕在线国产精品| 国产欧美在线看| 中文字幕日韩视频| 日本成人免费在线| 成人国产精品免费视频| 亚洲精品国产成人| 亚洲一区二区福利| 中文字幕久热精品在线视频| 日本午夜精品理论片a级appf发布| 亚洲天堂免费视频| 国产精品久久久久免费a∨| 欧美华人在线视频| 国模视频一区二区三区| 日韩视频在线观看免费| 欧美xxxx18国产| 国产成人精品久久亚洲高清不卡| 精品av在线播放| 亚洲男子天堂网| 亚洲国产古装精品网站| 欧美成人午夜激情| 麻豆乱码国产一区二区三区| 亚洲第一二三四五区| 亚洲自拍另类欧美丝袜| 日韩在线观看免费| www.久久久久久.com| 国产精品日韩在线| 亚洲图片欧美午夜| 精品久久久久久亚洲国产300| 国产经典一区二区| 国产成人精品优优av| 在线精品视频视频中文字幕| 欧美日韩亚洲91| 国产精品一区二区三区免费视频| 都市激情亚洲色图| 日韩一区二区三区国产| 91精品国产综合久久香蕉922| 国语自产精品视频在线看| 国产精品视频精品视频| 欧美精品aaa| 97在线视频精品| 精品少妇一区二区30p| 成人国产精品一区二区| 亚洲丝袜一区在线| 92看片淫黄大片欧美看国产片| 亚洲精品www久久久| 欧美重口另类videos人妖| 欧美孕妇孕交黑巨大网站| 日韩av色在线| 欧美日韩中文字幕| 日韩av电影在线播放| 久久影视电视剧免费网站清宫辞电视| 色综合老司机第九色激情| 亚洲偷熟乱区亚洲香蕉av| 国产区精品视频| 亚洲精品久久久久久久久| 亚洲精品视频免费| 国产精品视频公开费视频| 国产精品高清在线观看| 欧美激情精品久久久| 日本免费在线精品| 国产91在线播放| 亚洲精品久久久久久久久久久|