维基转储编码

时间:2012-11-30 09:54:08

标签: encoding utf-8 wiki dump wikimedia-dumps

我正在使用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以避免此类问题。

非常感谢

- [已解决]我应该先解压缩文件。

1 个答案:

答案 0 :(得分:1)

您正在压缩(bz2)版本的文件上运行iconv,而不是XML文件本身。首先解压缩。

(发布可靠的答案,以便此解决的问题未列为未答复。)