BLOGTIMES
::
Home > Jcodeで文字コード変換をしようとすると落ちる
2009/05/05
[ by hsur at 03:23]

Jcodeで文字コード変換をしようとすると落ちる

  

3月末にサーバを移行してからAWStatsの再設定をしていなかったので、AWStatsを再設定しました。ついでに2005年分からのログを再処理しようと思ったのですが、なぜかログの前処理のutf8_decode.plが下記のようなエラーを吐いて落ちるので困ってしまいました。

UTF-16BE:Malformed HI surrogate dee8 at /usr/lib/perl5/5.8.8/i386-linux-thread-multi/Encode.pm line 193, <STDIN> line 618012.

該当するコードは下記の部分のようです。

Jcode::convert(\$_,'utf8');

どうやらJcodeが文字変換の際にEncodeを呼び出すようなのですが、ここでおかしな文字が入っているとPerlが死んでしまうようです。同じような問題ではまっている人を見つけたので、あまり本質的な解決方法ではありませんが、eval{ };でくくって誤魔化してしまいました。

参考
 ・Jcode.pmが死ぬ : ひろ式めもちょう

しかたないのでevalで囲った。
[5年前][4年前][2年前][1年前] | Category: Tips | | Views: 365
このエントリは役に立ちましたか?
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→http://blog.cles.jp/item/3029
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form

コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。

OpenID を使ってログインすることができます。

Identity URL: Yahoo! JAPAN IDでログイン

Web Services by Yahoo! JAPANPowered by NP_SpamBayesJP
★下記に2つの英単語をスペースで区切って入力してください
::
Home > Jcodeで文字コード変換をしようとすると落ちる