从几天开始,我就在用Python编写的小程序中处理这个烦人的问题。在
我经常使用MediaWiki—最近我做文档从.doc到Wikisource的转换。在
在Libre Office中打开microsoftword格式的文档,然后以Wikisource格式导出为.txt文件。我的程序正在搜索一个[[Image:]]标记,并将其替换为从列表中获取的图像的名称-该机制工作得非常好(非常感谢brjaga的帮助)。
当我对我创建的.txt文件做了一些测试时,一切都很好,但是当我把一个.txt文件放在Wikisource中时,事情就不再那么有趣了:D
我收到了来自Python的消息:Traceback (most recent call last):
File "C:\Python33\final.py", line 15, in
s = ' '.join([line.replace('\n', '') for line in myfile.readlines()])
File "C:\Python33\lib\encodings\cp1250.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 7389: character maps to
这是我的Python代码:
^{pr2}$
好的,所以我做了一些研究,发现这是编码的问题。所以我安装了一个程序Notepad++,并将Wikisource.txt文件的编码改为:UTF-8并保存了它。然后我对代码做了一些修改:with open ("C:\\124_BPP_PL_PL.txt", encoding="utf8') as myfile:
s = ' '.join([line.replace('\n', '') for line in myfile.readlines()])
但我收到了一条新的错误信息:Traceback (most recent call last):
File "C:\Python33\final.py", line 22, in
dest.write(s)
File "C:\Python33\lib\encodings\cp1250.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\ufeff' in position 0: character maps to
我真的被这件事缠住了。我想,当我在记事本++中手动更改编码,然后告诉我设置的编码-一切都会好起来的。在
请帮忙,提前谢谢。在