Analogの解析結果に現れるURLエンコードを変換

新サーバにAnalogを導入していたのですが、その出力の中の検索語句レポートなどで出てくる %E6%BC%A2%E5%AD%97 のようなURLエンコードを文字に戻すスクリプトを書いてみました。

そういうツールとしては既にanalogurldecodeがありますが、中身を見てみると別のやり方でできないものかと試してみたくなったので。

anadeco.pl
  • EncodeEncode::Guessを使用。
  • まずEncode::Guessを試し、推測に失敗したら、UTF-8 → EUC → Shift_JIS の順で変換を試す、というやり方をしてます。
  • Analog 6.0で動作確認しました。
  • 付加機能として、URLエンコード文字列が元は何の文字コードだったかも合わせて出力するようにしてみました。
  • 出力HTMLの文字コードは何でも構いません(多分)。英語の場合でも、日本語文字は文字参照化されます。