EscapeSJIS.pm - Escape IBM extended Kanji and emoji in Shift_JIS
use EscapeSJIS; my $text = ""; EscapeSJIS::escape( \$text ); EscapeSJIS::unescape( \$text, $ENV{HTTP_USER_AGENT} ); EscapeSJIS::mime_encode( \$text );
escape( TEXT );
IBM 拡張漢字・携帯絵文字(3キャリア対応)は文字化けの原因となるため、 &#xHHHH; 形式に変換することで、Shift_JIS の文字列処理を安全にします。
Windows - IBM拡張漢字を &#xHHHH; 形式に変換します ドコモ - 絵文字を &#xHHHH; 形式に変換します Vodafone - 絵文字を &#xHHHH; 形式に変換します EZweb - 絵文字を &#xHHHH; 形式に変換します
上記以外の外字等については、下駄『〓』に変換します。 このモジュールで取り扱う文字コードは、Shift_JIS コードのみとします。 EUC-JP や UTF-8 への変換機能は含みません。
unescape( TEXT, USER_AGENT );
Shift_JIS 文字列中の &#xHHHH; エスケープ部分について、 携帯機種ごとに適切なバイナリ絵文字コードに展開します。 ブラウザ種別ごとに復元利用できる場合に復元します。 対応しない絵文字は、削除されます。
mime_encode( TEXT )
mime_encode 関数では、メールヘッダの変換に対応します。 先に unescape した後に mime_encode を呼び出してください。 なお、Jcode.pm の mime_encode 関数では絵文字類のコードが 含まれる場合に文字化けする可能性があります。
http://www.nttdocomo.co.jp/p_s/imode/tag/emoji/list.html http://www.dp.j-phone.com/dp/tool_dl/web/picword_01.php http://www.au.kddi.com/ezfactory/tec/spec/3.html
Copyright 2004-2005 Kawasaki Yusuke <u-suke [at] kawa.net>