我正在使用WikiPrep处理最新的wiki dump enwiki-20121101-pages-articles.xml.bz2。而不是“使用Parse :: MediaWikiDump;”我用“使用MediaWiki :: DumpFile :: Compat;”代替了它。并在代码中进行了适当的更改。然后,我跑了
perl wikiprep.pl -f enwiki-20121101-pages-articles.xml.bz2
我收到了错误
enwiki-20121101-pages-articles.xml.bz2:1: parser error : Document is empty
BZh91AY&SY±H¦ÂOÿ~Ð`ÿÿÿ¿ÿÿÿ¿ÿÿÿÿÿÿÿÿÿÿ½ÿýþdß8õEnÞ¶zëJ¨Eà®mEÓP|f÷Ô
^
我想转储中包含一些非utf8字符。所以我跑了
iconv -f utf8 -t utf8 enwiki-20121101-pages-articles.xml.bz2
事实上,我遇到了一些错误
BZh91AY&SYiconv: illegal input sequence at position 10
所以,我的问题是wiki转储的编码格式是什么,如果我想将其转换为utf-8,我该怎么办?或者如何修改wikiprep.pl以避免此类问题。
非常感谢
- [已解决]我应该先解压缩文件。
答案 0 :(得分:1)
您正在压缩(bz2)版本的文件上运行iconv,而不是XML文件本身。首先解压缩。
(发布可靠的答案,以便此解决的问题未列为未答复。)