%e7%8e%8b%e8%90%8c 是unicode編碼
創(chuàng)新互聯(lián)網(wǎng)絡(luò)公司擁有10多年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗,上1000家客戶的共同信賴。提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、網(wǎng)站開發(fā)、網(wǎng)站定制、賣鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站開發(fā)、網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)
%CD%F5%C3%C8是GBK編碼
pyth默認(rèn)是unicode編碼
要查對應(yīng)編碼可以去unicode官網(wǎng)查詢unicode-GBK對應(yīng)編碼
你試試這樣:
def?encodesave?(instr):
re?=?[]
for?i?in?range?(0,?len(instr)?//?8):
a=instr[(i*8):(i*8+8)]
re.append(b'%c'?%?int(a,2))
return?re
savecode=encodesave('10010000100100001001000010010000')
#print(savecode)
fp?=?open("after.txt",'wb')
for?b?in?savecode:
fp.write(b)
fp.close()
首先變量最好別命名成str,因為有str這個函數(shù),我就假設(shè)你用的是str0了
對于你的問題,應(yīng)該是編碼的問題,和split沒有關(guān)系,你可以直接print str0看看。要解決問題,就是進行轉(zhuǎn)碼:str0=str0.decode("utf-8").encode("gbk"),然后進行str1=str0.split(),
先引入urllib模塊
假如我們要對下面的url進行轉(zhuǎn)碼,注意觀察各種字符的變化
使用quote方法,進行轉(zhuǎn)碼
我們看看轉(zhuǎn)碼得到的結(jié)果:
我們想要得到原先的url,可以使用quote的逆函數(shù)unquote
得到反轉(zhuǎn)碼以后的url,我們看到這種方法并沒有返回中文字符。
轉(zhuǎn)回去就用 str.decode(chrset)
一點解釋:
python3x中
decode(chrset)解碼函數(shù),得到的都是unicode編碼。
encode(chrset)編碼函數(shù),得到的是chrset對應(yīng)編碼的。
chrset可以是utf-8,gbk,gb2312等等各種編碼。