私は正直なところこれに多くの時間を費やしており、ゆっくりと私を殺しています。 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です:アスキーコーデックは、位置213でのバイトに0xC2をデコードすることはできません:序ない範囲(128)に
私はちょうど今いじりんだけど、私は書き出すためにこのようなものを取得する方法のすべての種類を試してみた。
outputFile.write(kmlDescription).decode('utf-8')
これは基本的であるならば、私はまだ(2.7)はPythonを学んでいる私を許してください。
乾杯!
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
を得る:私はちょうどデータを書き込むしようとすると、私は元のエラーメッセージを受け取る(アスキーコーデックはバイトをデコードできません...)
私は提案されたスレッドとビデオをチェックアウトします。ありがとうございました!
編集3:私は、Python 2.7
編集4を使用していますが:(S)、彼は私がダブルエンコーディングだったことに気づいたとき、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
'contentRaw'を'書き込み 'しようとするとどうなりますか?データがすでにエンコードされているように見えます。 – agf
私はいくつかの同じ問題を 'codecs'モジュール、特に' codecs.open() 'と' codecs.write() 'で解決しました。見てみる価値があるかもしれません。 – heltonbiker