我老老实实地在这上面花了很多时间,并且它正在慢慢地杀死我。我从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