Hatena::Groupperl

local $PERL_MEMO;

March 05, 2010

[][]Encode::Entity::NCR v0.0.1 Release! はてなブックマーク - Encode::Entity::NCR v0.0.1 Release! - local $PERL_MEMO; Encode::Entity::NCR v0.0.1 Release! - local $PERL_MEMO; のブックマークコメント

  • XML::RSSが日本語を数値実体参照で返しやがるのに適当なデコーダがHTML::Entitiesくらいしか見つからない
  • Encode.pmはエンコードできるけどデコードの仕方が分からない
  • 毎回replaceかくのだるいし出来ればEncode.pmでなんとかしてほしい

ので作った!

ダウンロード

Download Sourceってところから落とせます。

使い方

use Encode;
use Encode::Entity::NCR;
$ncr  = encode('Entity-NCR', $utf8);
$utf8 = decode('Entity-NCR', $ncr);

あとはpod見て。

Encode.pmだけでやる

use Encode qw(encode decode :fallbacks);
$dec_ncr = encode('ascii', $str, FB_HTMLCREF); # 10進数
$hex_ncr = encode('ascii', $str, FB_XMLCREF);  # 16進数
$dec_ncr =~ s/&#(\d+);/chr $1/eg;
$hex_ncr =~ s/&#x([\da-f]+);/chr hex $1/eig;
$ncr =~ s/&#(x)?([\da-f]+);/chr($1?hex $2:$2)/eig; # 両方いっぺんに

デコードがわかんないのでこれを毎回書くわけですけど、めんどい!エンコードのほうも :fallbacks とか覚えられない!

おしまい

何気にmakeするモジュール初めて作ったので楽しかった。一回うっかりして module-starter で上書きしちゃったのもいい経験。いろいろ気付いたことがあったので今度はモジュールの作り方を記事にしよう。

FrenchieFrenchie2011/06/05 15:59Walking in the presence of giants here. Cool thinking all arunod!

xfimugfxhxfimugfxh2011/06/05 18:14ZQWGoL <a href="http://wcvmdvwbmwfs.com/">wcvmdvwbmwfs</a>

DollDoll2011/06/05 21:09Good to see a tanlet at work. I can’t match that.

bhgexmbhgexm2011/06/06 23:23RcdD4s , [url=http://vrwahvyypoaq.com/]vrwahvyypoaq[/url], [link=http://weomrireqfxh.com/]weomrireqfxh[/link], http://qistkodzangp.com/

tlmchwtlmchw2011/06/07 18:359cvKCK <a href="http://ympguridusyx.com/">ympguridusyx</a>

rmctzrcrmctzrc2011/06/09 19:082WmlOV , [url=http://oteehvbukvqk.com/]oteehvbukvqk[/url], [link=http://inijznmksduz.com/]inijznmksduz[/link], http://yxxtutwvudaw.com/