不可視データの怪
この前、Pywikipediabotで処理を行ったときの話。
ページが多かったのでテキストファイルに一覧を記載し、それを元に処理を行った。
以下がテキストの内容。
R-TYPE THE IDOLM@STER (Xbox 360) テイルズ オブ ヴァールハイト テイルズ オブ ブレイカー マリオカートWii ラチェット&クランク ロックマン2・ザ・パワーファイターズ キングダム ハーツ コーデッド キングダムハーツ バース バイ スリープ キングダム ハーツ バース バイ スリープ バイオハザードシリーズ サクラ大戦シリーズ 巫女みこナース 11eyes -罪と罰と贖いの少女- ドラゴンクエストシリーズ
さて、ここでいざ処理をしようとすると、1ページ目で壁にぶち当たった。プログラムが「?R-TYPE」というページの処理を試みている。テキストファイルの1行目はR-TYPEなのに、プログラムは1行目が「?R-TYPE」だと主張している。何でだろう?一旦中断して再度処理を実行しても同じ結果が出る。
テキストエディタで色々な操作を試みても「?」の原因はつかめない。
ここでテキストファイルに問題があるのかもしれないと考え、自分は別のファイルに同じ内容を記述した。すると1行目が「R-TYPE」だという。どうやらテキストファイルの問題らしい。
そこでバイナリエディタでテキストファイルを覗いてみた。なるほど納得。テキストエディタでは見えないデータが最初の文字よりも前に存在し、これをプログラムが読み取っていたためでした。
まさかこんなところに問題があるとは思わなかったよ!