Kawa.netxp ���{�ꏈ���E�g�ъG���������֌W��Perl���W���[��

���{����܂ޑ����ꏈ��(���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

�_�E�����[�h

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

�X�V����

�e���W���[���Ƃ��̃y�[�W�̎�ȍX�V�����ł��B

2007/12/30

2005/09/13

2005/04/22

2005/02/02

2004/11/23

CGIparamJP.pm ���W���[�� POD

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

EmailHTML.pm ���W���[�� POD

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

EmailJP.pm ���W���[�� POD

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

���[������ &#xE63E; �̂悤�� Unicode 16�i���R�[�h�Q�ƕ\�L������ƁA ���惁�[���A�h���X���玩�����ʂ��s���đ��M������ؑւ��܂��B

�‚܂�A1��ނ̃��[���e���v���[�g���쐬���邾���ŁA �ǂ̃L�����A�̌g�тł��G�����̓��������[�����󂯎��邱�Ƃ��ł��܂��B

EmojiTrans.pm ���W���[�� POD

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

EmojiTransMap.txt �ϊ��}�b�v

�ϊ��}�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

Encode561.pm ���W���[�� POD

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

EntityRef.pm ���W���[�� POD

�����񒆂̎��̎Q�ƕ\�L���R�[�h�Q�ƕ\�L�ɕϊ����܂��B

new �R���X�g���N�^

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

entity2hex ���\�b�h

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�ɂ� &lt; &amp; &gt; &quot; �Ȃǂ��Y�����܂��B

HTMLlat1.ent �G���e�B�e�B��`

HTML 4.01 Latin-1 entities �i&copy; �� &#169; �� © �Ȃǁj
http://www.w3.org/TR/html401/HTMLlat1.ent

HTMLspecial.ent �G���e�B�e�B��`

HTML 4.01 Special entities �i&lt; �� &#60; �� <�A&gt; �� &#62; �� > �Ȃǁj
http://www.w3.org/TR/html401/HTMLspecial.ent

HTMLsymbol.ent �G���e�B�e�B��`

HTML 4.01 Symbol entities �i&alpha; �� &#945; �� �� �Ȃǁj
http://www.w3.org/TR/html401/HTMLsymbol.ent

EmojiDoCoMo.ent �G���e�B�e�B��`

DoCoMo �̌g�ъG�������ꂼ��ɉp�������`�������̂ł��B
�iDoCoMo �̐����̊G�������̂ł͂���܂���j

EscapeJIS.pm ���W���[�� POD

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

EscapeSJIS.pm ���W���[�� POD

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

escape �֐�

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

unescape �֐�

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

EscapeUTF8.pm ���W���[�� POD

EscapeSJIS.pm �� EscapeJIS.pm ���W���[���Ɠ��l�ɁA escape ����� unescape �֐���񋟂��܂��B ���ۂɂ́AUTF8 �‹����ł̓G�X�P�[�v�����͕s�v�̂��߁Aescape ���\�b�h�͉������܂���B ����ł͒P�ɓ����̊֐���񋟂��Ă��邾���ł�

�R�����g�͂������ by AjaxCom

���̑��̃y�[�W�ւ̃����N

���̃y�[�W�ւ̃g���b�N�o�b�N by AjaxTB

�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