国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python encode()函數(shù)詳解,Python編碼解碼

這篇具有很好參考價(jià)值的文章主要介紹了Python encode()函數(shù)詳解,Python編碼解碼。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

「作者主頁(yè)」:士別三日wyx
「作者簡(jiǎn)介」:CSDN top100、阿里云博客專(zhuān)家、華為云享專(zhuān)家、網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者
「推薦專(zhuān)欄」:小白零基礎(chǔ)《Python入門(mén)到精通》

encode() 可以對(duì)字符串進(jìn)行「編碼」,常用來(lái)對(duì)「中文」字符串進(jìn)行編碼,以解決「亂碼」問(wèn)題。

語(yǔ)法

string.encode( encoding, errors )

參數(shù)

  • encodeing :(可選)指定編碼,默認(rèn) UTF-8
  • errors :(可選)設(shè)置錯(cuò)誤處理方式,默認(rèn)

返回值

  • 返回編碼后的「新字符串」

實(shí)例:對(duì)字符串進(jìn)行GBK編碼

str1 = 'hello'
print(str1.encode('gbk'))

輸出:

b'hello'

1、常見(jiàn)編碼格式

  • ASCLL:美國(guó)早期制定的編碼規(guī)范,只能表示128個(gè)字符。
  • GB2312:中國(guó)在ASCLL基礎(chǔ)上對(duì)中文進(jìn)行擴(kuò)展,可以表示6763個(gè)漢字符號(hào)。
  • GBK:對(duì)GB2312的進(jìn)一步擴(kuò)展(K指擴(kuò)),收錄了21886個(gè)漢字符號(hào)。
  • GB18030:對(duì)GBK再一次擴(kuò)充,收錄了70244個(gè)漢字符號(hào)。
  • Unicode:字符集,包含了世界上目前所有的符號(hào),全球的所有文字都可以解析,字符是定長(zhǎng)的,統(tǒng)一為16位
  • UTF-8:使用最廣的一種Unicode的實(shí)現(xiàn)方式,每次8個(gè)位傳輸數(shù)據(jù);體積太大,國(guó)內(nèi)通常使用GBK。
  • UTF-16:Unicode的另一種實(shí)現(xiàn)方式,每次傳輸16位數(shù)據(jù)

各個(gè)編碼實(shí)例:

print('hello'.encode('gb2312'))
print('hello'.encode('gbk'))
print('hello'.encode('gb18030'))
print('hello'.encode('utf8'))
print('hello'.encode('utf16'))

輸出:

b'hello'
b'hello'
b'hello'
b'hello'
b'\xff\xfeh\x00e\x00l\x00l\x00o\x00'

仔細(xì)觀察返回結(jié)果就會(huì)發(fā)現(xiàn),字符串前面都加了個(gè)b,接下來(lái)我們了解一下這是什么含義。

2、返回的是Bytes類(lèi)型

encode() 編碼后會(huì)返回一個(gè)「Bytes類(lèi)型」的結(jié)果,而不是「str類(lèi)型」

str1 = 'hello'
print(type(str1))
print(type(str1.encode()))

輸出:

<class 'str'>
<class 'bytes'>

bytes 和 str 都屬于字符串類(lèi)型:

  • str 以Unicode code points形式存儲(chǔ)(人認(rèn)識(shí)的形式)
  • bytes 以byte形式存儲(chǔ)(機(jī)器認(rèn)識(shí)的形式)

bytes 是一個(gè)「二進(jìn)制」序列對(duì)象,定義時(shí)在字符串前面加上b(英文可以,中文需要先encode)

str1 = b'hello'
print(type(str1))

輸出:

<class 'bytes'>

3、錯(cuò)誤處理方式

encode() 在編碼時(shí),經(jīng)常會(huì)遇到「無(wú)法編碼」的字符,這時(shí)就可以用 errors 設(shè)置適當(dāng)?shù)奶幚矸绞剑?/p>

  • strict:失敗時(shí)引發(fā)錯(cuò)誤
  • ignore:忽略無(wú)法編碼的字符
  • backslashreplace:用反斜杠替換無(wú)法編碼的字符
  • namereplace:用解釋字符的文本替換無(wú)法編碼的字符
  • replace:用問(wèn)號(hào)替換無(wú)法編碼的字符
  • xmlcharrefreplace:用xml字符替換字符

如果給「兩個(gè)參數(shù)」,可以自動(dòng)按順序復(fù)制給參數(shù);如果只給「一個(gè)參數(shù)」,需要用參數(shù)名指定。

print('hello'.encode('gbk', 'strict'))
print('hello'.encode(errors='ignore'))
print('hello'.encode(errors='backslashreplace'))
print('hello'.encode(errors='namereplace'))
print('hello'.encode(errors='replace'))
print('hello'.encode(errors='xmlcharrefreplace'))

4、解碼

decode() 會(huì)將「bytes類(lèi)型」轉(zhuǎn)成「str類(lèi)型」,這意味著它只能解碼bytes類(lèi)型的字符串,解碼str類(lèi)型的字符串會(huì)報(bào)錯(cuò) AttributeError: ‘str’ object has no attribute ‘decode’

Python encode()函數(shù)詳解,Python編碼解碼,Python,python,網(wǎng)絡(luò)安全,人工智能

bytes類(lèi)型格式是 b'xxx',如果只有str形式的字符串(比如 '\xe5\xbc\xa0\xe4\xb8\x89'),可以在前面加上b,變成bytes類(lèi)型,再進(jìn)行解碼

print(b'\xe5\xbc\xa0\xe4\xb8\x89'.decode())

輸出:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-543187.html

張三

到了這里,關(guān)于Python encode()函數(shù)詳解,Python編碼解碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python字符串的編碼和解碼

    不同計(jì)算機(jī)之間進(jìn)行數(shù)據(jù)傳輸,實(shí)際上傳輸?shù)氖嵌M(jìn)制數(shù)據(jù)。 將str類(lèi)型轉(zhuǎn)換成bytes類(lèi)型,需要用到字符串的encode()方法 Str.encode(encoding=’utf-8’, ?????????????? Errors=’strict/ignore/replace’) 將bytes類(lèi)型轉(zhuǎn)換成str類(lèi)型,需要用到bytes類(lèi)型的decode()方法 Bytes.decode(encodin

    2024年01月22日
    瀏覽(25)
  • python解碼bash64報(bào)錯(cuò):binascii.Error: Invalid base64-encoded string: number of data characters (7121) can

    python解碼bash64報(bào)錯(cuò):binascii.Error: Invalid base64-encoded string: number of data characters (7121) can

    base64Test.py 報(bào)錯(cuò): 這個(gè)錯(cuò)誤提示說(shuō)明你的Base64字符串長(zhǎng)度不是4的倍數(shù),因此無(wú)法正確解碼。這是因?yàn)锽ase64編碼是將3個(gè)字節(jié)的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為4個(gè)字符,如果原始數(shù)據(jù)長(zhǎng)度不是3的倍數(shù),編碼器會(huì)進(jìn)行一些填充操作,以便使編碼后的字符串長(zhǎng)度是4的倍數(shù)。 在Python中,使用標(biāo)準(zhǔn)

    2024年02月02日
    瀏覽(30)
  • 解決python編碼報(bào)錯(cuò):UnicodeEncodeError: ‘a(chǎn)scii‘ codec can‘t encode character u‘\uff08‘ in position 13:ordin

    解決 python 編碼報(bào)錯(cuò): UnicodeEncodeError: \\\'ascii\\\' codec can\\\'t encode character u\\\'uff08\\\' in position 13: ordinal not ? ?最近在手搓數(shù)據(jù)分析小項(xiàng)目時(shí),需要借助于爬蟲(chóng)獲取些數(shù)據(jù),于是翻出去年暑假寫(xiě)的python爬蟲(chóng)代碼,往常可以正常運(yùn)行的代碼,卻總是報(bào) UnicodeEncodeError: \\\'ascii\\\' codec can\\\'t encode

    2024年01月18日
    瀏覽(92)
  • Solidity中哈希函數(shù)的編碼與解碼

    Solidity中哈希函數(shù)的編碼與解碼

    起因 寫(xiě)這篇文章的起因,是我在前端調(diào)試合約的時(shí)候,發(fā)現(xiàn)合約報(bào)錯(cuò)了,點(diǎn)開(kāi)命令行報(bào)錯(cuò),發(fā)現(xiàn)返回的是合約的 callData ,我直接表演一個(gè)眼前一黑,我怎么直接的知道是調(diào)用哪個(gè)方法的時(shí)候報(bào)錯(cuò)呢? 于是有了這篇文章的探索 目標(biāo): 如何根據(jù) callData 解析出調(diào)用函數(shù) 內(nèi)容:從

    2024年02月06日
    瀏覽(20)
  • Transformer | DETR目標(biāo)檢測(cè)中的位置編碼position_encoding代碼詳解

    Transformer | DETR目標(biāo)檢測(cè)中的位置編碼position_encoding代碼詳解

    本文主要描述的是DETR論文中的position_encoding,詳細(xì)DETR論文解析可參考 ?論文篇 | 2020-Facebook-DETR :利用Transformers端到端的目標(biāo)檢測(cè)=>翻譯及理解(持續(xù)更新中)_夏天|????的博客-CSDN博客_dert目標(biāo)檢測(cè) Transformer不像RNN可以根據(jù)位置順序接受和處理單詞,所以為了得到詞的

    2023年04月08日
    瀏覽(23)
  • FFMpeg 實(shí)現(xiàn)視頻解碼、編碼、轉(zhuǎn)碼流程詳解

    FFMpeg 實(shí)現(xiàn)視頻解碼、編碼、轉(zhuǎn)碼流程詳解

    打開(kāi)FFmpeg源碼,會(huì)發(fā)現(xiàn)有一系列l(wèi)ibavxxx的模塊,這些模塊很好地劃分了代碼的結(jié)構(gòu)和分工。 libavformat,format,格式封裝 libavcodec,codec,編碼、解碼 libavutil,util,通用音視頻工具,像素、IO、時(shí)間等工具 libavfilter,filter,過(guò)濾器,可以用作音視頻特效處理 libavdevice,device,設(shè)備

    2024年02月11日
    瀏覽(21)
  • SSR-Encoder:用于主題驅(qū)動(dòng)生成的通用編碼器詳解_AIGC-圖片生成視頻系列

    SSR-Encoder:用于主題驅(qū)動(dòng)生成的通用編碼器詳解_AIGC-圖片生成視頻系列

    本文介紹了SSR-Encoder,一種用于主題驅(qū)動(dòng)生成的通用編碼器,能夠根據(jù)文本提示或掩碼查詢生成圖像,無(wú)需額外的測(cè)試時(shí)間微調(diào)。文章詳細(xì)解釋了SSR-Encoder的貢獻(xiàn)概述、方法詳解以及綜合結(jié)果,展示了其在圖像生成和視頻生成方面的有效性。

    2024年02月02日
    瀏覽(63)
  • 哈夫曼樹(shù),哈夫曼編碼及解碼詳解

    哈夫曼樹(shù),哈夫曼編碼及解碼詳解

    ??新人小白的博客 ??希望大家多多關(guān)注 ??一起加油,共同成長(zhǎng) ??以后會(huì)經(jīng)常更新噠~?? ??個(gè)人主頁(yè): 收藏加關(guān)注,永遠(yuǎn)不迷路~?? 一: 順序表的操作,你真的學(xué)會(huì)了嗎? 二: 順序棧的基本操作 三: 循環(huán)隊(duì)列的基本操作,你學(xué)會(huì)了嗎? 四: 單鏈表的操作(超詳細(xì)

    2024年02月05日
    瀏覽(15)
  • 【Python編程錯(cuò)誤:‘utf-8‘編解碼器無(wú)法解碼字節(jié)0xd5】--解決方法詳解

    【Python編程錯(cuò)誤:\\\'utf-8’編解碼器無(wú)法解碼字節(jié)0xd5】–解決方法詳解 Python是一門(mén)非常流行的高級(jí)編程語(yǔ)言,用戶可以很方便地使用它來(lái)實(shí)現(xiàn)各種功能。然而,在使用Python編寫(xiě)代碼時(shí),有時(shí)會(huì)遇到各種錯(cuò)誤。本文將詳細(xì)介紹一種常見(jiàn)的Python編程錯(cuò)誤——\\\'utf-8’編解碼器無(wú)法解

    2024年02月08日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包