Hatena::ブログ(Diary)

no strict; no life;

2013-03-05

2011-01-19 このエントリーを含むブックマーク このエントリーのブックマークコメント

2009-07-02

Encode::JP::Emojiでの相互変換

utf8(docomo)
↓
sjis(kddi)

ってやる方法は、

utf8(docomo)
↓ x-sjis-emoji-docomoでencode
sjis(docomo)
↓ x-sjis-e4u-docomoでdecode
utf8(google)
↓ x-sjis-e4u-kddiでencode
sjis(kddi)

のようにするので合ってるかな?かな?

つまりは相互変換するときはGoogleUTF-8を経由しないといけないということなんだろうか?

実際以下のコードだと動くのでそうなのかな。

use Encode::JP::Mobile;
use Encode::JP::Emoji;

my $kddi = "\xF6\x59";
my $docomo = "\xF9\xDC";

# Encode::JP::Mobile
warn $kddi eq encode( 'x-sjis-kddi-auto', decode( 'x-sjis-imode', $docomo ) ); # true

# Encode::JP::Emoji
my $docomo_str = decode( 'x-sjis-emoji-docomo', $docomo );
my $docomo_octet = encode( 'x-sjis-emoji-docomo', $docomo_str );
my $google_str = decode( 'x-sjis-e4u-docomo', $docomo_octet );
warn $kddi eq encode( 'x-sjis-e4u-kddi', $google_str ); # true

追記:

↓これでもできるようですね。

warn $kddi eq encode( 'x-sjis-e4u-kddi', decode( 'x-sjis-e4u-docomo', $docomo ) ); # true

Encode::JP::Emojiをつかってみて思ったこと

これはイイとおもって実践で使えるかどうか考えてる間に思ったことをつらつら書きます。


流れ的に正しいし便利だなーと思ったのですがUnicodeに入るのが前提かなぁ。

まぁ思い切ってGoogleコードポイントDBに入れちゃってもいいきもするけど。

実装みたらtrを使って置換してるんですね。すげー。


ということでもうちょっとGoogleUnicode絵文字を見守ってみたいと思います。

2009-06-25

赤坂に来たときは是非食べて欲しい!

希須林 赤坂 担担麺 (赤坂見附/担々麺)
★★★★4.0
powered by livedoor グル

2009-05-29

emacs lispのshell-command-to-string()

shell-command-to-stringっていう関数は、渡された文字列をコマンドとしてログインシェルに渡すっぽい。

なのでtcshをログインシェルにしていて、下記のようなものを評価すると

(shell-command-to-string
 "perl -e 'print join(q{ }, grep( !/^\.$/, @INC));'"
 )
"/: Event not found.
"

エラーがでます。これは「!」がtcshでは特別な意味を持ってるから。

ログインシェルをbashやzshに変えてやってみたら↑のは問題なく実行できました。

Connection: close