人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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へは年度変わりに切り替えるため、対象外です。(解析結果が異なるため)

●質問者: P-mako
●カテゴリ:インターネット ウェブ制作
✍キーワード:Apache AWStats EUC Perl pm
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● b-wind
●60ポイント ベストアンサー

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

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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ