メモ encodeで変換失敗を第三引数でフォロー
2009/11/11 [14:27:08] (水) 

Encode::decode()でutfフラグをつけてゴソゴソ。その後Encode::encode()でutfフラグを落として出力したい文字コードに。というありがちな日常風景だ。
で、このとき、変換できない機種依存文字などはデフォルトだと「?」になる。それはそれでいいんだけど。変換できない文字があるかどうかを判定したいときに変換後文字列から「?」を grep するのはなにかと面倒だったりするので、ぐーぐるサマに聞いてみた。
foreach ( split(//, $line ){
print Encode::encode(’euc-jp’, $_, sub{ sprintf qq{ [%s] }, shift } ):
}
foreach ( split(//, $line){
Encode::encode(’utf8’, $_, sub{ printf qq{CantConvertChar --- %s}, $line} ):
}
判定できないものを第三引数で受けることができるのだった。上記の例だと判定できないものをサブルーチンでマークしたり、判定できないものが混じってたらその行を出力したり。
便利だったんで忘れないうちにメモ
[11/12 00:20:41]
便利といえば。twitter の webに新着通知機能がついてた。
ストリーミングでリアルタイム実況だ、とか言ってたけど、この新着通知機能で十分、か。いちいち更新しなくても、新着があったらわかるようになって、らくちん度128倍アップだ。
どういう仕組みなんだろう。

