我老老實實地在這上面花了很多時間,並且它正在慢慢地殺死我。我從PDF中剝離了內容並將其存儲在一個數組中。現在我試圖將其從數組中拉出並寫入一個txt文件。但是,由於編碼問題,我似乎無法做到這一點。Python編碼用於寫入文本文件的解碼
allTheNTMs.append(contentRaw[s1:].encode("utf-8"))
for a in range(len(allTheNTMs)):
kmlDescription = allTheNTMs[a]
print kmlDescription #this prints out fine
outputFile.write(kmlDescription)
我得到的錯誤是「的UnicodeDecodeError:ASCII編碼解碼器不能在213位解碼字節爲0xC2:序數不在範圍內(128)
我只是瞎搞了,但我已經試過各種方法讓這些東西寫出來。
outputFile.write(kmlDescription).decode('utf-8')
請原諒我,如果這是基本的,我還在學習的Python(2.7)。
乾杯!
EDIT1:樣本數據看起來像下面這樣:
Chart 3686 (plan, Morehead City) [ previous update 4997/11 ] NAD83 DATUM
Insert the accompanying block, showing amendments to coastline,
depths and dolphins, centred on: 34° 41´·19N., 76° 40´·43W.
Delete R 34° 43´·16N., 76° 41´·64W.
當我添加打印類型(原始),我得到
編輯2:當我嘗試寫數據時,我收到原始的錯誤消息(ASCII編碼解碼器不能解碼字節...)
我將檢查建議的螺紋和視頻。謝謝你們!
編輯3:我使用Python 2.7
編輯4:AGF擊中頭部釘在下面的意見時,他(她)注意到我是雙編碼。我試圖雙重編碼一個以前一直在工作的字符串,併產生了最初拋出的相同錯誤信息。喜歡的東西:
text = "Here's a string, but imagine it has some weird symbols and whatnot in it - apparently latin-1"
textEncoded = text.encode('utf-8')
textEncodedX2 = textEncoded.encode('utf-8')
outputfile.write(textEncoded) #Works!
outputfile.write(textEncodedX2) #failed
一旦我想通了,我是想雙編碼時,溶液呈如下:
allTheNTMs.append(contentRaw[s1:].encode("utf-8"))
for a in range(len(allTheNTMs)):
kmlDescription = allTheNTMs[a]
kmlDescriptionDecode = kmlDescription.decode("latin-1")
outputFile.write(kmlDescriptionDecode)
它的工作了,我肯定感謝所有您的幫助!
請提供一些樣品數據,你有問題。並運行「type(raw_data)」並將結果粘貼到您的問題中 – pylover 2012-03-27 19:45:35
如果您只是嘗試「寫入」contentRaw,會發生什麼情況?它看起來像數據已經編碼。 – agf 2012-03-27 19:51:59
我使用'codecs'模塊解決了一些相同的問題,特別是'codecs.open()'和'codecs.write()'。值得一看。 – heltonbiker 2012-03-27 19:59:44