[を] 指定した URL へのリンクのアンカーテキストを収集するとそのはてなブックマークエントリで言及されていた、PerlのEncodeモジュールの decode で "UTF-16LE:Malformed LO surrogate xxxx at ..." というエラーが出る問題を調べてみました。 まずは再現条件を調べたところ、http://quote.yahoo.co.jp/ のページを取得して decode した時にエラーが発生することが分かりました。エラー再現までの流れは以下の通りです。 http://quote.yahoo.co.jp/ の内容を取得し、変数$textに格納。 Encode::Guess により$textの文字コードを判定。 その結果、(文字列はEUC-JPで書かれているにも関わらず)UTF-16LEと判定される。 判定結果を元に、decode('UTF-16LE