awstats(Advanced Web Statistics 5.6)のdecode.plでURLエンコードされたApacheログをEUCにデコードしています。

ここで、RH8.0では問題なくデコードできていたものが、(awstats5.6をそのまま移行した)ES4.0ではデコード結果がUTF8になってしまいます。
これをEUCに指定する方法はありませんか?
perlのモジュールはそれぞれJcode.pl、Jcode.pmです。
※最新のUTF8版awstatsへは年度変わりに切り替えるため、対象外です。(解析結果が異なるため)

回答の条件
  • URL必須
  • 1人1回まで
  • 登録:
  • 終了:2006/08/29 13:21:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント60pt

http://www.mediaweb.biz/database/modules/database/article.ph...

awstats は余り使ったことがないのですが、decode.pl は上のURLにあるように、

$ decode.pl < access_log > access_log.euc

というようなフィルターとして使っているという認識でよろしいでしょうか?

この場合正攻法だと decode.pl の先頭付近に

use encoding 'euc-jp';

とするか、

use open OUT => ":encoding('euc-jp')";

use open ':std';

とすることで出力を euc-jp に変換できるはずですが、副作用が多く実際にどうなるかは保証できません。

今後バージョンアップをされるとの事なので、一時的な対処として

$ decode.pl < access_log | perl -MJcode -p -e '$_=jcode($_,"utf-8")->euc;' > access_log.euc

とフィルターをはさんでしまうのが手っ取り早いかと思います。

id:P-mako

ご回答ありがとうございます。

上記暫定対処で問題なくデコード可能でした。

2006/08/29 13:18:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません