M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2007年9月19日 23:41

Unicode::JapaneseのUnicodeでの絵文字入力がわかりにくかった

このエントリーをはてなブックマークに追加 mixiチェック

Unicode::Japanese::JA - Unicode::Japanese::JA - 日本語文字コード変換 - search.cpan.org [search.cpan.org]

DoCoMo i-mode
F800 - F9FF の領域のうち絵文字が存在する部分を,U+0FF800 - U+0FF9FF の領域にマッピングします.

つうわけで、DoCoMo のSJISで0xf987にある□の中に1のキャラクタは、変換前のUTF-8では、"\x{0ff987}"とUnicode指定しておけばいいです。DoCoMoの絵文字のUnicodeを参照する必要はない。

#!/usr/bin/perl
use Unicode::Japanese;
use CGI;
my $q = CGI->new();
my $str = "\x{0ff987}";
my $s = Unicode::Japanese->new($str, 'utf8' );
print $q->header(-type=>'text/plain', -charset=>'Shift_JIS', );
print $s->sjis_imode;
exit;

Imodesikakuichi
▲□の中に1

HTML::Templateのテンプレートファイル内でUnicodeをエスケープでいれるのが難しいので、こんな感じに。

#!/usr/bin/perl
use Unicode::Japanese;
use CGI;
use HTML::Template;
my $q = CGI->new();
my $str = '\x{0ff987}';
my $tmpl = HTML::Template->new( scalarref => \$str );
my $s = $tmpl->output();
$s =~s|\\x{([\da-f]+?)}|chr( hex( $1 ) )|eg;
$s = Unicode::Japanese->new( $s, 'utf8' );
print $q->header(-type=>'text/plain', -charset=>'Shift_JIS', );
print $s->sjis_imode;
exit;

投稿 大野 義貴 [Perl] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2220

コメントする