ActivePerlのdecodeがおかしい?
先日何気なくPPMでモジュールのアップデートを確認したら大量のモジュールがVerUpされていました。
ここんところさぼってたからなぁとひょいひょいとインストールしたら、途端に動かなくなった命令が。
Encodeモジュールなのですが、現状Ver2.35。
use Encode;
$str = decode("utf8", $oct); #$octはbytesで持ってきた入力。UTF-8。
で「Cannot decode string with wide characters」エラーが出る。
"shift-jis"もアウト、何故か"iso-2022-jp"は動きます。
「decode_utf8」は動くんですよね。
PerlDocを読んでも変わったって書いてない気がするなぁ。
前日まで動いてたものが動かなくなると実に困りますね。
原因が判りました。
www-mechanizeをVer1.58にUPするとdecodeが何故か巧く動かなくなる取ってきた内容を自動的にutf8(フラグ付き)に変換するようです。
私の普段使っているIRCボットの機能の一つに、定期的に登録済みサイトのRSSを取ってきてIRCに流すルーチンを組んであったのですが、日本ではRSSをsjisで書いてるサイトがたまにあるんですよね。
本来は文字セットをちゃんと作るのが筋なんでしょうが、私は面倒なのでutf8に変換して、文字セット情報を書き換えてズルしてたんですね。
結論としては文字コード変換せずに文字セット情報だけ書き換えれば解決でした。
や~れやれw
« ダイスボットが特定のチャンネルで巧く動きません | トップページ | 「ボーンズ&カーズ」Ver1.2.1公開 »
「日記・コラム・つぶやき」カテゴリの記事
- ウォーハンマーRPG第4版(WFRP4e)用キャラクターシート(2024.05.28)
- オンラインセッション用のデータ置き場(2020.07.17)
- 暑くなってきたのでデザイン変更です(2012.05.26)
- スパム業者に見つかったらしい(2010.10.19)
- 例によって衣替え(2010.06.14)
この記事へのコメントは終了しました。
コメント