摘要:我們測試一下對空格和制表符編碼可以看到空格和制表符分別被轉(zhuǎn)換成為和。和與上述方法的區(qū)別在于是對流對象進(jìn)行操作。
之前看到群友這樣一個(gè)問題:
大概就是調(diào)用網(wǎng)絡(luò)接口得到的數(shù)據(jù)是如下形式:
text = """=E5=9B=A0=E4=B8=BA=E4=B8=81=E4=BF=8A=E6=99=96=E5=8F=AA=E8=B7=9F=E7=9D=80==E9=BA=A6=E8=BF=AA=E5=B0=B1=E4=B8=8D=E5=8F=AF=E8=83=BD=E9=82=A3=E5=88=B0==E6=80=BB=E5=86=A0=E5=86=9B=E6=88=92=E6=8C=87=EF=BC=8C=E8=80=83=E8=99=91==E5=88=B0=E6=8A=A4=E7=90=83=E9=97=AE=E9=A2=98=EF=BC=8C=E5=A6=82=E6=9E=9C==E7=94=A8=E9=BA=A6=E8=BF=AA=E6=8D=A2=E4=BA=A8=E5=88=A9=E7=9A=84=E8=AF=9D==E8=AF=B4=E4=B8=8D=E5=AE=9A=E5=B0=B1=E8=A1=8C=EF=BC=8C=E5=BD=93=E7=84=B6==E8=AF=B8=E8=91=9B=E5=AD=94=E6=98=8E=E8=BF=99=E4=B8=AA=E8=80=81=E7=8B=90==E7=8B=B8=E8=82=AF=E5=AE=9A=E6=98=AF=E7=95=A5=E6=87=82=E8=BF=99=E4=BB=B6==E4=BA=8B=E7=9A=84=EF=BC=8C=E4=BB=96=E7=AC=AC=E4=B8=80=E4=B8=AA=E4=B8=8D==E7=AD=94=E5=BA=94=EF=BC=8C=E5=B0=B1=E7=AE=97=E4=BB=96=E7=AD=94=E5=BA=94==E4=BA=86=EF=BC=8C=E7=BC=9D=E5=B0=8F=E8=82=9B=E8=83=BD=E7=AD=94=E5=BA=94==E5=90=97=EF=BC=9F=E6=89=80=E4=BB=A5=E8=BF=99=E6=95=B4=E4=BB=B6=E4=BA=8B==E6=83=85=E7=9A=84=E4=BA=AE=E7=82=B9=E5=B0=B1=E5=9C=A8=E4=BA=8E=E7=A7=A6==E5=A5=8B"""
其實(shí)這是Quoted-Printable Content-Transfer-Encoding編碼出來的文本,這種編碼的目的是為了防止文字傳輸時(shí)編碼格式被修改,參看:https://www.freesoft.org/CIE/RFC/1521/6.htm
對于這種編碼形式,python內(nèi)置庫提供了quopri能夠解碼上述文本:
import quopriresult = quopri.decodestring(text).decode("u8")result
"因?yàn)槎】熤桓湹暇筒豢赡苣堑娇偣谲娊渲福紤]到護(hù)球問題,如果用麥迪換亨利的話說不定就行,當(dāng)然諸葛孔明這個(gè)老狐貍肯定是略懂這件事的,他第一個(gè)不答應(yīng),就算他答應(yīng)了,縫小肛能答應(yīng)嗎?所以這整件事情的亮點(diǎn)就在于秦奮"
關(guān)于quopri模塊可參考:https://docs.python.org/zh-cn/3/library/quopri.html
也就四個(gè)方法:
下面再測試一下編碼:
text = "測試 Quoted-Printable /t編碼"quopri.encodestring(text.encode("u8"))
b"=E6=B5=8B=E8=AF=95 Quoted-Printable /t=E7=BC=96=E7=A0=81"
其中quotetabs
參數(shù)表示是否對空格和制表符編碼,默認(rèn)不編碼。
我們測試一下對空格和制表符編碼:
quopri.encodestring(text.encode("u8"), quotetabs=True)
b"=E6=B5=8B=E8=AF=95=20Quoted-Printable=20=09=E7=BC=96=E7=A0=81"
可以看到空格和制表符分別被轉(zhuǎn)換成為=20
和=09
。
而header
參數(shù)則控制了空格是否被編碼為下劃線:
quopri.encodestring(text.encode("u8"), header=True)
b"=E6=B5=8B=E8=AF=95_Quoted-Printable_/t=E7=BC=96=E7=A0=81"
??注意:當(dāng)
quotetabs
參數(shù)設(shè)置為True時(shí),header參數(shù)則無效。
decode和encode與上述方法的區(qū)別在于是對流對象進(jìn)行操作。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/120001.html
摘要:發(fā)送郵件好說,接收和下載郵件也好說。所以我們想要解析一封郵件把它拆成人能讀懂的標(biāo)題收發(fā)件人內(nèi)容附件等,就必須得理解這套協(xié)議。了解協(xié)議,其實(shí)主要就是了解郵件的嵌套結(jié)構(gòu)。另一種壓縮方式,需要用庫函數(shù)來解碼。 郵件的解析是個(gè)大課題,遠(yuǎn)超一般人的預(yù)期。它遠(yuǎn)比發(fā)送郵件和接收郵件要復(fù)雜的多的多。這就是為什么網(wǎng)上中文外文搜郵件的問題,絕大多數(shù)都是講發(fā)送的而講接收的很少。 發(fā)送郵件好說,接收和下載郵件...
摘要:字符編碼表,碼位碼元將編碼字符集中的碼位轉(zhuǎn)換成有限比特長度的整型值的序列。字符編碼方案,碼元序列化也稱為常說的序列化。每個(gè)字節(jié)里的二進(jìn)制數(shù)就是字節(jié)序列。另一個(gè)情況則是壓縮字節(jié)序列的值,如或進(jìn)程長度編碼等無損壓縮技術(shù)。 《流暢的Python》筆記。本篇主要講述不同編碼之間的轉(zhuǎn)換問題,比較繁雜,如果平時(shí)處理文本不多,或者語言比較單一,沒有多語言文本處理的需求,則可以略過此篇。 1. 前言 ...
摘要:參考了這篇文章偽協(xié)議實(shí)現(xiàn)命令執(zhí)行的七種姿勢,并根據(jù)自己理解進(jìn)行了總結(jié),也算是加深一下印象,方便以后使用。說明文件系統(tǒng)是使用的默認(rèn)封裝協(xié)議,展現(xiàn)了本地文件系統(tǒng)。允許直接訪問指定的文件描述符。 參考了這篇文章:php偽協(xié)議實(shí)現(xiàn)命令執(zhí)行的七種姿勢,并根據(jù)自己理解進(jìn)行了總結(jié),也算是加深一下印象,方便以后使用。 file:// 協(xié)議 條件: allow_url_fopen:off/on...
摘要:前言本篇主要介紹基本數(shù)據(jù)類型,以文本進(jìn)度條為例,介紹庫的使用。 前言 本篇主要介紹基本數(shù)據(jù)類型,以文本進(jìn)度條為例,介紹time庫的使用。 并在最后對蟒蛇繪制的代碼進(jìn)...
摘要:編碼轉(zhuǎn)換為編碼下面讓我們來看下如何將編碼的數(shù)據(jù)轉(zhuǎn)換為編碼的數(shù)據(jù)。該方法是將碼進(jìn)行編碼轉(zhuǎn)換,從而得到編碼的數(shù)據(jù)。 概述 當(dāng)你在前端需要通過二進(jìn)制數(shù)據(jù)與服務(wù)端進(jìn)行通信時(shí),你可能會(huì)遇到二進(jìn)制數(shù)據(jù)的編碼問題。大部分服務(wù)端的字符串編碼類型都為UTF-8,而JavaScript中字符串編碼類型是UTF-16,因此,你需要一個(gè)能夠?qū)⒆址趦煞N編碼方式間進(jìn)行轉(zhuǎn)換的方法。 本文通過對utfx.js這個(gè)...
閱讀 1640·2021-10-09 09:44
閱讀 2797·2021-10-08 10:04
閱讀 2469·2021-09-26 09:55
閱讀 3848·2021-09-22 10:02
閱讀 3313·2019-08-29 17:08
閱讀 1071·2019-08-29 15:08
閱讀 2959·2019-08-26 13:52
閱讀 3275·2019-08-26 13:34