���{����܂ޑ����ꏈ��(���UTF8�AShift_JIS�AISO-2022-JP�B ���̑���Latin1�AEUC-JP�AEUC-KR�ABig5�AGB2310�Ȃǂɂ��Ή�)��A DoCoMo�ESoftBank�Eau �ɑΉ������g�ъG���������֘A�̃��W���[���Q�ł��B
�����̃��W���[���́ACGI / mod_perl ���ǂ���ł����p�ł��܂��B
Perl�̃o�[�W������5.005�ȍ~�ŗ��p�ł��܂��B�i5.6.1�A5.8.x���܂ށj
CodeRepos �ɍŐV�\�[�X�R�[�h�i�Ƃ͂���2005�N9��13���Łj���ړ����܂����B
CodeRepos ��ŏ��������Ă��������Ăn�j�ł��b�I
����ŃA�[�J�C�u�F
i18n-emoji.20050913.tar.gz
TGZ
i18n-emoji.20050913.zip
ZIP
�ŐV�Ń\�[�X�R�[�h�F
http://svn.coderepos.org/share/lang/perl/misc/i18n-emoji/
SVN
�����^���T�[�o�E�z�X�e�B���O�T�[�o�ȂǁAroot �������g�p�ł��Ȃ������� CPAN ����̃��W���[���C���X�g�[���̂ł��Ȃ����ł��A���p�ł��܂��B
�e���W���[���Ƃ��̃y�[�W�̎�ȍX�V�����ł��B
CGI.pm �̃T�u�N���X�ŁA�N�G�����̓��{�ꏈ�����s���܂��B
set_param_charset ���\�b�h���lj�����Ă���A �N�G���ϐ��̕����R�[�h�̎������ʁE�����ϊ����s���܂��B ����ȊO�͒ʏ�� CGI.pm �ƑS�������悤�ɗ��p�ł��܂��B �N�G���ϐ��̒l�̎��o���͒ʏ�ʂ� param ���\�b�h�𗘗p���܂��B CGI.pm �Ƃ̈Ⴂ�́Anew ��Ɉ�x���� set_param_charset ���Ăԓ_�݂̂ł��B
use CGI; # �N�G������ use CGIparamJP; # �N�G�����͂̓��{��R�[�h�ϊ� use Encode561; # �ėp�̓��{��R�[�h�ϊ� use EscapeSJIS; # Shift_JIS �ŊG�����������s�� my $cgi = new CGIparamJP(); $cgi->set_param_charset( "EUC-JP", "Shift_JIS" ); my $name = $cgi->param( "name" );
�N�G���� Shift_JIS �R�[�h�œ��͂��ꂽ�ꍇ�́A
EscapeSJIS.pm �ƕ��p���邱�ƂŃN�G���ϐ����̌g�ѓd�b�G������ &#xHHHH; �`���ɁA
�܂� Windows �̊g�������iNEC�EIBM�g�������j�� &#xHHHH; �`���ɕϊ����܂��B
HTML�t�@�C����MIME�}���`�p�[�g�ɕϊ����܂��B
# HTML���[�����M�T���v���v���O���� use strict; use EmailHTML; use Net::SMTP; # �����ݒ� my $SMTP_HOST = "127.0.0.1"; my $MAIL_FROM = '[email protected]'; my $MAIL_RCPT = '[email protected]'; my $URL = "http://www.domain.name/i/"; # �w�� URL �̓��e���� HTML ���_�E�����[�h���� my $eh = new EmailHTML( URL => $URL ); # �W���I�ȃ��[���w�b�_��lj��Őݒ肷�� $eh->set_header( From => $MAIL_FROM ); $eh->set_header( To => $MAIL_RCPT ); # MIME �}���`�p�[�g HTML ���[���`���Ŏ��o�� my $data = $eh->out_text(); # Net::SMTP ���g���ă��[�����M���� my $smtp = new Net::SMTP( $SMTP_HOST ) or die "SMTP Failed - $SMTP_HOST\n"; $smtp->mail( $MAIL_FROM ) or die "Invalid sender - $MAIL_FROM\n"; $smtp->to( $MAIL_RCPT ) or die "Invalid receipts - $MAIL_RCPT\n"; $smtp->data(); $smtp->datasend( $data ); $smtp->dataend(); $smtp->quit();
�w�肵��URL����HTML���_�E�����[�h���A�摜�t�@�C�����܂�
MIME �}���`�p�[�g�`���ɂ�� HTML ���[���ɕϊ����܂��B
�y�[�W���̉摜�������I�Ƀ_�E�����[�h����ABase64�G���R�[�h����܂��B
HTML ���Ɋ܂܂�� IMG �^�O�� <IMG SRC="cid:�`"> �Ə����������܂��B
�������� HTML ���[���́A
Outlook Express�ABecky! 2 �Ŏ�M�E�\���ł��邱�Ƃ͂������A
NTT DoCoMo 900i �V���[�Y�̃f�R���[���Ƃ��Ă���M�E�\���ł��܂��B
�������A�f�R���[���̐����ɂ��A�摜�t�@�C�����܂߂��e�ʂ�
10KB �ȉ��ƂȂ��Ă���K�v������܂��B
10KB ����ꍇ�́A900i ���@�Ŏ�M�����ꍇ��
�P�Ȃ�摜�t�@�C���Y�t���[���ƂȂ��Ă��邽�߁A�����ӂ��������B
HTML �̕����R�[�h�̓_�E�����[�h�����܂ܕύX����܂���B
�T�[�o��� Shift_JIS �̃R���e���c�́A���[�����ł� Shift_JIS �ɂȂ�܂��B
ISO-2022-JP�AEUC-JP�AUTF-8�AISO-8859-1�AUS-ASCII �Ȃǂ����p�\�ł��B
UCS-2 �Ȃǂ� 16bit �����͗��p�ł��܂���B
�Ȃ��AEmailHTML.pm ���̂� HTML ���[���f�[�^�̐��������݂̂��s���A
SMTP �v���g�R���𗘗p�������[�����M�����͍s���܂���B
���[���𑗐M����ꍇ�́ANet::SMTP ���W���[���p���邩�A
out_file() ���\�b�h�� sendmail ���N�����ă��[���𑗐M���Ă��������B
Net::SMTP ���W���[���p���āA���[���𑗐M���܂��B
use EmailJP; my $count = &EmailJP::sendmail( mail => $text );
$text �Ƀ��[���w�b�_�{�{���̃f�[�^�������Ă����ԂŌĂяo���ƁA $text ���̃��[���w�b�_�������I�ɎQ�Ƃ��Ĉ���A�h���X�����肵�A ���[���𑗐M���܂��B �i�����Ƃ��ȒP�ȃT���v���j
use EmailJP; my $server; $server = "127.0.0.1"; # SMTP�T�[�o $server = [qw( 192.168.0.1 127.0.0.1 )]; # �����w��\ my $count = &EmailJP::sendmail( server => $server, # SMTP�T�[�o hello => "localhost", # HELLO timeout => 5, # �^�C���A�E�g return => $return_path, # �G���[�ԑ��� to => $rcpt_to, # ���[������ head => $mail_head, # ���[���w�b�_ body => $mail_body, # ���[���{�� charset => "iso-2022-jp", # ���M�����R�[�h�� JIS internal => "EUC-JP" # ���������R�[�h�� EUC );
�ł́A���[���w�b�_�ƃ��[���{����ʂ̕ϐ��Ƃ��ēn���Ă��邾���łȂ��A ���M����A�h���X��g�p���� SMTP �T�[�o�A�����R�[�h�Ȃǂ��w�肵�Ă��܂��B
���M�����R�[�h�� ISO-2022-JP �̏ꍇ�́A�����I��
EscapeJIS.pm ���W���[�����Ăяo����܂��i�����I��use EscapeJIS;�͕s�v�j�B
���[���w�b�_�E���[���{�����̌g�ъG������APC �g�����������S�ɑ��M���܂��B
(������i���[�h�̎d�l��Ai���[�h�G�����ɂ��Ă� ISO-2022-JP �ł�
i���[�h�g�ю��@�ɂ͑��M�ł��܂���BShift_JIS���g�p���Ă�������)
���M�����R�[�h�� Shift_JIS �̏ꍇ�́A�����I��
EscapeSJIS.pm ���W���[�����Ăяo����܂��i�����I��use EscapeSJIS;�͕s�v�j�B
���[���w�b�_�E���[���{�����̌g�ъG������APC �g�����������S�ɑ��M���܂��B
���[������  �̂悤�� Unicode 16�i���R�[�h�Q�ƕ\�L������ƁA ���惁�[���A�h���X���玩�����ʂ��s���đ��M������ؑւ��܂��B
�܂�A1��ނ̃��[���e���v���[�g���쐬���邾���ŁA �ǂ̃L�����A�̌g�тł��G�����̓��������[�������邱�Ƃ��ł��܂��B
DoCoMo �p�G�������Aau�ESoftBank �p�G�����ɕϊ����܂��B
�{���W���[���ł́A�G������ Unicode �� HHHH; �`���ɂ�����Ԃň����܂��B
�G�����ȊO�̕����ɂ��ẮA
ISO-2022-JP�AEUC-JP�AUTF-8�AISO-8859-1�AUS-ASCII �Ȃ�
�����R�[�h�͖₢�܂���iUCS-2 �͏����j
�ϊ��}�b�v�i��`�t�@�C���j���̊G�����́A Shift_JIS �o�C�i���R�[�h�ł͂Ȃ��A �S�� Unicode �� 16�i���ŕ\�L���Ă��܂��B �i�R�����g������ EUC-JP �ł��j
Perl 5.6.1 �� 5.005 �Ȃ� Encode.pm �𗘗p�ł��Ȃ����ŁA Encode.pm ���C�N�ȕϊ�������܂��B
use Encode561; my $text = "Hello, World!\n"; Encode561::from_to( $text, "utf8", "cp932" ); print $text;
Encode.pm �͓��{�ꂾ���łȂ�������̕ϊ��ɗL�p�ł����A
Perl 5.8.x �ȍ~�ł������p�ł��܂���B
�������A�T�[�o�^�p��A�ǂ����Ă� Perl 5.005 �� Perl 5.6.x �Ƃ�����
�Â��o�[�W�����̂܂܉ғ����Ă�}�V���������Ǝv���܂��B
Jcode.pm �� Unicode::Map �Ƃ��������W���[����g�ݍ��킹�邱�Ƃ�
Encode.pm �Ɠ����̏����������ł��܂����A
Encode/Jcode/Unicode::Map �ł͂��ꂼ��C���^�[�t�F�[�X���قȂ邽�߁A
�v���O���������G�ɂȂ��Ă��܂��܂��B
Encode561.pm �́AEncode::from_to ���Ɠ����̏������s����
Encode561::from_to ������܂��B
Perl 5.005 ����� 5.6.x �̃T�[�o��� Encode561.pm �𗘗p����
�J�������v���O�������APerl 5.8.x �̃T�[�o�Ŗ{���� Encode.pm ��
���p���ĉғ������邱�Ƃ��\�ɂȂ�܂��B
Jcode.pm ����� Unicode::Map �ł́AUnicode ���瑼�̃R�[�h�ɕϊ�����
�o�͐敶���Z�b�g�ŕ\���ł��Ȃ������́u??�v��u���v�ɕϊ����ꂽ��A
�폜����Ă��܂��܂��B
Encode.pm �ɂ́A������������ Encode::FB_XMLCREF �I�v�V����������܂��B
Jcode.pm ����� Unicode::Map �ł��A����
FB_XMLCREF �����̋@�\����������p�b�`�v���O����
��\�ߓK�p���Ă������Ƃ������߂��܂��B
�ϊ��s�\�ȕ����� HHHH; �̌`���ɃG�X�P�[�v���邱�ƂŁA����������h���܂��B
Encode561.pm�̋t�̖��������郂�W���[���� JEcode.pm������܂��B ������́APerl 5.8.x��Encode.pm�𗘗p���� Jcode.pm�݊��̃��\�b�h����郉�b�p�[�������ł��B
�����̎��̎Q�ƕ\�L���R�[�h�Q�ƕ\�L�ɕϊ����܂��B
HTML/XML �p�̎��̎Q�Ƃ̒�`�}�b�v�t�@�C����ǂݍ��݂܂��B
new() �̑�P�����Œ�`�}�b�v�t�@�C�����w�肵�܂��B
�����Œ�`�t�@�C����1���w�肵�Ȃ��ꍇ�A�f�t�H���g�ł�
HTMLlat1.ent�AHTMLspecial.ent�AHTMLsymbol.ent
��3�̕W����`�}�b�v�t�@�C����ǂݍ��݂܂��B
�����̃t�@�C���� EntityRef.pm �Ɠ����f�B���N�g���ɐݒu���Ă��������B
use EntityRef; my $er = new EntityRef( "EmojiDoCoMo.ent" );
���̗�ł́ADoCoMo �p�G�����p�̎��̎Q�Ƃ̒�`�}�b�v�t�@�C���݂̂�ǂݍ��݂܂��B
new �œǂݍ���`�}�b�v�𗘗p���āA �����̎��̎Q�ƕ\�L���AUnicode�R�[�h�ԍ��\�L(16�i��)�ɕϊ����܂��B
use EntityRef; my $er = new EntityRef(); my $text = "EURO € ALPHA �� COPY ©\n"; $er->entity2hex( \$text );
���̗�ł́A$text ���̎��̎Q�ƕ\�L��
�R�[�h�Q�ƕ\�L�ɕϊ�����܂��B
$text �̕����R�[�h�́AUTF-8�^Latin-1�^Shift_JIS�^EUC-JP �Ȃǖ�킸
���p�ł��܂��B�iUCS-2�^UTF-16 �������܂��j
���������S�E�݊����̂��߁AUnicode �ԍ��� 128 ��菬���������i0�`127�j�ɂ��Ă� �R�[�h�Q�ƕ\�L�ɂ͕ϊ����ꂸ�A���̎Q�Ƃ̂܂܂ƂȂ�܂��B ��̓I�ɂ� < & > " �Ȃǂ��Y�����܂��B
HTML 4.01 Latin-1 entities
�i© �� © �� © �Ȃǁj
http://www.w3.org/TR/html401/HTMLlat1.ent
HTML 4.01 Special entities
�i< �� < �� <�A> �� > �� > �Ȃǁj
http://www.w3.org/TR/html401/HTMLspecial.ent
HTML 4.01 Symbol entities
�iα �� α �� �� �Ȃǁj
http://www.w3.org/TR/html401/HTMLsymbol.ent
DoCoMo �̌g�ъG�������ꂼ��ɉp�������`�������̂ł��B
�iDoCoMo �̐����̊G�������̂ł͂���܂���j
ISO-2022-JP �e�L�X�g���ɊG�����EIBM�g���������g����悤�ɂ��܂��B
use EscapeJIS; $body = "�G��������[]\n"; Jcode::convert( \$body, "jis", "euc" ); EscapeJIS::unescape( \$body ); print $body;
unescape ���\�b�h���Ăяo���ۂɂ�
$body���͗\�� JIS �R�[�h�ɂ���K�v������܂��B
�G�����R�[�h�� &#xHHHH; ��Unicode 16�i���R�[�h�Q�ƌ`���Ƃ��܂��B
��ɁA����unescape���\�b�h��ʉ߂�������������[�����M���ė��p���܂��B
�Ȃ��ADoCoMo �g�ю��@�ł� charset=ISO-2022-JP �̃��[���ł͊G�����͗��p�ł��Ȃ��̂ŁA EscapeJIS.pm �͎g���Ă��G�����͕\���ł����ɕ����������܂��B EscapeSJIS.pm �𗘗p���� charset=Shift_JIS �Ń��[���𑗂�K�v������܂��B
Shift_JIS �e�L�X�g���ɊG�����EIBM�g���������g����悤�ɂ��܂��B
���̃��W���[���Ŏ�舵�������R�[�h�́AShift_JIS �R�[�h�݂̂Ƃ��܂��B
EUC-JP �� UTF-8 �ւ̕ϊ��@�\�͊܂݂܂���B
DoCoMo �p�G����
http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/list/index.html
SoftBank �p�G����
http://developers.softbankmobile.co.jp/dp/tool_dl/web/picword_top.php
au �p�G����
http://www.au.kddi.com/ezfactory/tec/spec/3.html
�Ȃ��ASoftBank �p�G�����ɂ��ẮA SoftBank �Ђ�Java �� (S!�A�v���쐬�p�R�[�h) �ł͊e�G������ Unicode �� E001�`E55A �Ƀ}�b�v����܂����A �{�d�l�ł� au �p�G�����Ƃ̏d���}�b�s���O������邽�߁A F001�`F55A�Ɉړ����Ă��܂��B
IBM �g�������E�g�ѓd�b�G�������܂ޕ�����͕��������̌����ƂȂ邽�߁A
HHHH; 16�i�� Unicode �R�[�h�Q�ƕ\�L�ɕϊ����邱�ƂŁA
�Ȍ�� Shift_JIS �̃e�L�X�g���������S�ɂ��܂��B
HHHH; 16�i�� Unicode �R�[�h�Q�ƕ\�L�� IBM�g�������E�g�ѓd�b�G�������AShift_JIS �o�C�i���ɕϊ����܂��B HHHH; �`���̕\�L�ɑS�Ă̊����Ή����Ă���킯�ł͂Ȃ��̂ŁA PC��g�ѓd�b���@�ł̕\�����̌݊��������߂܂��B
EscapeSJIS.pm �� EscapeJIS.pm ���W���[���Ɠ��l�ɁA escape ����� unescape ������܂��B ���ۂɂ́AUTF8 �����ł̓G�X�P�[�v�����͕s�v�̂��߁Aescape ���\�b�h�͉������܂���B ����ł͒P�ɓ����̊�����Ă��邾���ł�
�g���b�N�o�b�NURL�Fhttp://www.kawa.net/service/tb/ajaxtb.cgi/works/perl/i18n-emoji/i18n-emoji.html
Kawa.netxp © Copyright 2004-2006 Yusuke Kawasaki