當前位置:首頁 » 編程語言 » python中decode

python中decode

發布時間: 2022-06-24 01:39:12

python讀取txt文檔的時候遇到decode錯誤如何解決

你用的是python3才會出這個問題。python3在readlines里,預設會使用操作系統當前的編碼來解析文件,比如windows下就用GBK,在linux下則根據當前language來設置解析辦法。


解決的辦法是在open()里加上參數


fi=open('somefile.txt','r')

改成

fi=open('somefile.txt','rt',encoding="utf-8")

這個encoding就是指定編碼格式。如果encoding="utf-8"不行,你就改成encoding="gb18030",如果還不成,就改成encoding="big-5"。如果還不成。只能手工將" —"
替換成負號。

Ⅱ pythonencode和decode的區別

encode編碼,decode解碼
相反的兩個過程。

Ⅲ python怎麼知道一個字元串的編碼方式

字元串的編碼,有很多種如utf-8,gb2312,gbk,gb18030,bz2,zlib,big5,bzse64

python 對編碼的處理有兩個方法,decode()和 encode()方法

a='你好'
b='python'
printa.decode('utf-8').encode('gbk')##decode方法把字元串轉換為unicode對象,然後通過encode方法轉換為指定的編碼字元串對象
printb.decode('utf-8')##decode方法把字元串轉換為unicode對象

所以要讓python(或者說機器)來識別字元串的編碼,是一件很困難的事。編碼就是漢字和整數之間的對應,同一個整數,可以在不同的編碼中,都有對應的漢字。比如下面的例子,比特流'xe6xb0xb4xe5xa3xb6'在四種編碼中都有對應的漢字,但只有在utf-8編碼下,它對應的漢字才有意義。我們可以一眼看出這點,可是要讓計算機做到這點,就很難了。

>>>s='水壺'
>>>s
18:'xe6xb0xb4xe5xa3xb6'
>>>printunicode(s,'big5')
瘞游ㄥ
>>>printunicode(s,'gbk')
姘村6
>>>printunicode(s,'gb2312')
姘村6
>>>printunicode(s,'utf-8')
水壺

Ⅳ 為什麼python decode每效果

decode()方法使用注冊編碼的編解碼器的字元串進行解碼。它默認為默認的字元串編碼。

語法

以下是decode()方法的語法:
str.decode(encoding='UTF-8',errors='strict')

參數

encoding -- 這是所使用的編碼。對於所有的編碼方案的列表,請訪問:標准編碼庫

errors --
這可能是給定一個不同的錯誤處理機制。默認的錯誤是「嚴格」,即編碼錯誤提出UnicodeError。其他可能的值是ignore',
'replace', 'xmlcharrefreplace', 'backslashreplace'
並通過codecs.register_error().注冊的任何其他名稱。

返回值

此方法返回的字元串的解碼版本。

例子

下面的例子顯示了decode()方法的使用。

#!/usr/bin/python

str = "this is string example....wow!!!";
str = str.encode('base64','strict');

print "Encoded String: " + str;
print "Decoded String: " + str.decode('base64','strict')

當我們運行上面的程序,它會產生以下結果:
Encoded String: =

Decoded String: this is string example....wow!!!

Ⅳ python decode之後是什麼編碼

是unicode,如果原來是gbk我要轉utf-8應該這樣:

a="某gbk編碼內容"
a.decode('gbk').encode('utf-8')
#先用gbk的方式解碼成unicode再把unicode轉換成utf-8

Ⅵ python3 沒有str.decode怎麼辦

  1. python3中encode和decode跟python2還是有一定的區別的,在python3中:

  2. encode(編碼):按照某種規則將「文本」轉換為「位元組流」。 python 3中表示:unicode變成str

  3. decode(解碼):將「位元組流」按照某種規則轉換成「文本」。 python3中表示:str變成unicode

  4. 字元串在Python內部的表示是Unicode編碼,因此在做編碼轉換時,通常需要以Unicode作為中間編碼,即先將其他編碼的字元串解碼(decode)成Unicode,再從Unicode編碼(encode)成另一種編碼。

Ⅶ python3 decode()和encode()默認是什麼編碼格式

默認是utf-8
python3全面支持utf-8,再也不必為編碼煩惱了

Ⅷ Python中中文字元串怎麼處理

如果處理的字元串中出現中文表示的字元,要想不出錯,就得轉成unicode編碼了。具體的方法有:
1、decode(),將其他邊編碼的字元串轉換成unicode編碼,如str1.decode('gb2312'),表示將gb2312編碼的字元串str1轉換成unicode編碼;
2、encode(),將unicode編碼轉換成其他編碼的字元串,如str2.encode('gb2312'),表示將unicode編碼的字元串str2轉換成gb2312編碼;
3、unicode(),同decode(),將其他編碼的字元串轉換成unicode編碼,如unicode(str3, 'gb2312'),表示將gb2312編碼的字元串str3轉換成unicode編碼。
轉碼的時候一定要先搞明白字元串str是什麼編碼,然後decode成unicode,最後再encode成其他編碼。
另外,對一個unicode編碼的字元串在進行解碼會出錯,所以在編碼未知的情況下要先判斷其編碼方式是否為unicode,可以用isinstance(str, unicode)。
不僅是中文,以後處理含非ascii編碼的字元串時,都可以遵循以下步驟:
1、確定源字元的編碼格式,假設是utf8;
2、使用unicode()或decode()轉換成unicode編碼,如str1.decode('utf8'),或者unicode(str1, 'utf8');
3、把處理後字元串用encode()編碼成指定格式。

熱點內容
fckeditor上傳 發布:2022-07-05 15:39:07 瀏覽:346
蘋果手機怎麼找到app的緩存 發布:2022-07-05 15:38:39 瀏覽:855
伺服器連接兩個區域網相同ip 發布:2022-07-05 15:36:28 瀏覽:948
低次配有哪些配置 發布:2022-07-05 15:34:04 瀏覽:486
golang編譯二進制文件保護 發布:2022-07-05 15:33:56 瀏覽:227
vs選擇文件夾 發布:2022-07-05 15:33:05 瀏覽:507
寫php代碼 發布:2022-07-05 15:32:50 瀏覽:245
安卓10如何找開發者選項 發布:2022-07-05 15:31:11 瀏覽:348
2g換卡服務密碼為什麼不正確 發布:2022-07-05 15:29:31 瀏覽:29
vsstudio編譯和生成 發布:2022-07-05 15:29:24 瀏覽:164