̾��

Jcode - ���ܸ�ʸ������ϥ�ɥ�

����

 use Jcode;
 #
 # �ż��椫����
 Jcode::convert($str, $ocode, $icode, "z");
 # �⤷���ϥ��֥������Ȼظ��ǡ�
 print Jcode->new($str)->h2z->tr($from, $to)->utf8;

����

Jcode.pm�ϥ��֥�������Ū�ʥ��ץ������Ƚ��褫��Υ��ץ�������ξ���� ���ݡ��Ȥ��Ƥ��ޤ������֥�������Ū�ʥ��ץ�������Ȥ��Ф���ʴ����ǡ�

$iso_2022_jp = Jcode->new($str)->h2z->jis;

�������ꥨ�쥬��ȤǤ��礦��

$iso_2022_jp = $str; &jcode::convert(\$iso_2022_jp, 'jis', &jcode::getcode(\$str), "z");

���֥������Ȥ������ߤ�̵���ͤΤ���ˡ�Jcode.pm�Ϥޤ�\*(C`getcode()\*(C'�� \*(C`convert()\*(C'�򥵥ݡ��Ȥ��Ƥ��ޤ���

Perl�ΥС������5.8.1�ʾ�ʤ顢Jcode�ϡ�Perl 5.8�ʹߤ�ɸ��Ū��ʸ������ �ϥ�ɥ�⥸�塼��Ǥ���Encode�Υ�åѡ��Ȥ��ƿ����񤤤ޤ���

�᥽�å�

�ä˸��ڤ��ʤ��¤ꡢ�����ǵ󤲤�᥽�åɤ�����Jcode���֥������Ȥ��֤��ޤ���

\$1

$str����Jcode���֥�������$j���������ޤ�������Ū��$icode�򥻥åȤ��ʤ���С� ���ϥ����ɤϼ�ưŪ��Ƚ�ꤵ��ޤ������Ѳ�ǽ��ʸ������ˤĤ��Ƥϡ����� getcode�򻲾Ȥ��Ƥ��������� Perl 5.8.1�ʹߤǤϡ�$icode�ˤ�Encode������Ǥ��� �ɤ�ʥ��󥳡��ǥ���̾��Ȥ��ޤ��� $j = Jcode->new($european, 'iso-latin1'); ���֥������Ȥ�ʸ���󲽤���ȡ�EUC���Ѵ����줿ʸ�����֤�ޤ����Ǥ����� \*(C`print $j->euc\*(C'�Ȥ�������ˡ�\*(C`print $j\*(C'�ȤǤ��ޤ���

��ե�����Ϥ�

�����顼�ͤ�����ˡ��ʲ��Τ褦�˥�ե���󥹤��Ϥ��ޤ��� Jcode->new(\$str); ����Ϥۤ�ξ������֤����󤷤ޤ�����������Ȥ��ơ�$str���ͤ��Τ�Τ� �Ѵ�����ޤ��ʤ����̣��$str��jcode���֥������Ȥ�\*(L"tie�����\*(R"�ΤǤ��ˡ�

$j������ʸ�����$str�򥻥åȤ��ޤ��������֤�Jcode���֥������Ȥ�Ȥ��Ȥ��� �����Ǥ��ʥ��֥������Ȥ�����������֤ȥ��������ˤʤ�ޤ��ˡ� # mailbox��SJIS�������Ѵ� my $jconv = new Jcode; $/ = 00; while(<>){ print $jconv->set(\$_)->mime_decode->sjis; } $j������ʸ�����$str��ä��ޤ��� Jcode->new() ��û�̷����ʲ��Τ褦�ˤǤ��ޤ��� $sjis = jcode($str)->sjis; ���̤ˡ�$j->encoded�Ȥ��뤳�Ȥ�encoded���Ѵ����줿ʸ��������ޤ��� �����Ǥ��礦�� \s-1WYCIWYG\s0 = What you code is what you get :) \*(C`$j->h2z->jis\*(C'��Ʊ���Ǥ��� Ⱦ�ѥ��ʤ϶���Ū�����Ѥ��Ѵ�����ޤ��� Perl 5.8.1�ʹߤǤϡ�Encode�����ݡ��Ȥ���ɤ�ʥ��󥳡��ǥ���̾�� �����ꥢ���Ǥ����ѤǤ��ޤ����㤨�С� $european = $j->iso_latin1; # �᥽�å�̾�Ѥ�'-'��'_'���֤������ޤ� ������Encode::Encoder�������Ʊ��������ȤäƤ��ޤ���

$j->fallback($fallback)

Perl 5.8.1�ʹߤǤϡ�Jcode��������ʸ�����UTF-8���ݻ����ޤ��� ->encoding�˥ޥåפǤ��ʤ�ʸ����'?'���֤��������ޤ����� �����Encode�Ǥ�ɸ��ư��Ǥ��� my $unistr = "\x{262f}"; # ���ۥޡ��� my $j = jcode($unistr); # $j->euc �η�̤� '?' �� ���ο����񤤤ϡ�EncodeƱ�͡��ե�����Хå�����ꤹ�뤳�Ȥ��ѹ��Ǥ��ޤ��� �ͤ�Encode�Τ�ΤȰ��Ǥ����ص��Τ��ᡢ\*(C`Jcode::FB_PERLQQ\*(C'�� \*(C`Jcode::FB_XMLCREF\*(C'��\*(C`Jcode::FB_HTMLCREF\*(C'��Encode�Τ����ؤ� �����ꥢ���ˤʤäƤ��ޤ��� print $j->fallback(Jcode::FB_PERLQQ)->euc; # '\x{262f}' print $j->fallback(Jcode::FB_XMLCREF)->euc; # '☯' print $j->fallback(Jcode::FB_HTMLCREF)->euc; # '☯' �������Х��ѿ�$Jcode::FALLBACK�˥ǥե���ȤΥե�����Хå����ݻ� ����Ƥ��ޤ��Τǡ������ͤ��������뤳�Ȥǥ����С��饤�ɤǤ��ޤ��� $Jcode::FALLBACK = Jcode::FB_PERLQQ; # �ǥե���ȤΥե�����Хå��������ޤ�����

$width�ʥǥե���ȡ�72�����jcodeʸ������ιԤ��ޤ��֤��ޤ��� $width�ϡ�Ⱦ�ѡ�ʸ���ο��Ǥ�������ʸ����2ʸ���Ȥ��ƥ�����Ȥ��ޤ��� $newline_str�ʥǥե���Ȥ�\*(L"\n\*(R"�ˤǻ��ꤵ�줿����ʸ�����ä��ޤ��� �ޤ��֤��줿���Ԥ�ꥹ�Ȥ��֤��ޤ��� Perl 5.8.1�ʹߤ�3���ܤΰ���$kref��EUC��ʸ����������ե���󥹤� �Ϥ����Ȥǡ��ʰ�Ū�ʹ�Ƭ��§�����ʤ֤鲼����ˤ�Ԥ��ޤ��� �Х���Ĺ�ǤϤʤ�������ʸ�����ʸ���Ȥ��ƿ���������ʸ�������֤��ޤ��� �����Υ᥽�åɤ�Ȥ��ˤϡ�MIME::Base64��ɬ�פǤ������󥹥ȡ����ñ���

perl -MCPAN -e 'CPAN::Shell->install("MIME::Base64")'

�Ȥ��ޤ������Ȥ���Perl��5.6�ʹߤǤ���ʤ顢MIME::Base64�� �Х�ɥ뤵��Ƥ���Τǡ����󥹥ȡ����ɬ�פϤ���ޤ��� $str��RFC1522�ˤ���MIME-Header���Ѵ����ޤ���$lf����ꤹ��ȡ� �Ԥ��ޤ��֤���$lf���Ȥ��ޤ��ʥǥե���ȡ�\n�ˡ� $bpl����ꤹ��ȡ��ޤ��֤��Х��ȿ���$bpl���Ȥ��ޤ��ʥǥե���ȡ�76�� ���ο��ͤ�76�ʲ��Ǥʤ���Фʤ�ޤ���ˡ� Perl 5.8.1�ʹߤǤϡ��ʲ��Τ褦�ˤ��Ƥ�MIME Header���󥳡��ɤ��Ǥ��ޤ��� $mime_header = $j->MIME_Header; ���ξ��$mime_header������ͤ�MIME-B-encoded UTF-8�ˤʤ�ޤ��� ������\*(C`$j->mime_encode()\*(C'��MIME-B-encoded ISO-2022-JP���֤��ޤ��� �Ƕ�ΤۤȤ�ɤΥ᡼�顼�Ϥɤ���⥵�ݡ��Ȥ��Ƥ��ޤ���

$j->mime_decode;

Jcode���֥������Ȥ�����ʸ�����MIME-Header�ǥ����ɤ��ޤ���Perl 5.8.1 �ʹߤʤ顢�ʲ��Τ褦�ˤ���Ʊ�����Ȥ��Ǥ��ޤ��� Jcode->new($str, 'MIME-Header'); ������ξ�硢ISO-2022-JP�����ǤϤʤ�UTF-8�ʤɤˤ��б����Ƥ��ꡢ �����MIME B Encoding�Τߤʤ餺MIME Q Encoding�ˤ��б����Ƥ��� �Τǡ�Perl 5.8.1�ʹߤǤ���Ф������Ȥ��٤��Ǥ��礦��

$j->h2z([$keep_dakuten])

X201���ʡ�Ⱦ�ѡˤ�X208���ʡ����ѡˤ��Ѵ����ޤ��� $keep_dakuten�˿��ͤ򥻥åȤ���ȡ������򤽤Τޤޤˤ��ޤ� (����ϤĤޤꡢ�֥��ܡ��פϡ֥��פ��Ѵ����줺�ˤ��Τޤ� �ˤʤ�Ȥ������ȤǤ�) $j->nmatch���̤��ƥޥå�������������Ǥ��ޤ���

$j->z2h

X208���ʡ����ѡˤ�X201���ʡ�Ⱦ�ѡˤ��Ѵ����ޤ��� $j->nmatch���̤��ƥޥå�������������Ǥ��ޤ��� \*(C`->m()\*(C'��\*(C`->s()\*(C'��Ȥ��ˤϡ�Perl 5.8.1�ʹߤ� ɬ�פǤ��� Jcode���֥������Ȥ�\*(C`tr/$from/$to/\*(C'��Ŭ�Ѥ��ޤ���$from��$to�� EUC-JP��ʸ����Ǥ���Perl 5.8.1�ʹߤǤϡ�flag�դ���UTF-8ʸ���� ������դ��ޤ��� $opt�򥻥åȤ���ȡ�\*(C`tr/$from/$to/$opt\*(C'��Ŭ�Ѥ���ޤ���$opt�� 'c'��'d'���뤤�Ϥ������Ȥ߹�碌�Ǥʤ���Фʤ�ޤ��� $j->nmatch���̤��ƥޥå�������������Ǥ��ޤ��� Perl 5.8.1�ʹߤǤϡ�tr�η����˸���Τ��ä�����->error_tr���̤��ơ� $@������Ǥ��ޤ��� �ʲ��Υ᥽�åɤ�Perl 5.8.1�ʹߤǤΤ����Ѳ�ǽ�Ǥ��� �ġ���\*(C`s/$pattern/$replace/$opt\*(C'��Ŭ�Ѥ��ޤ���$opt������ɽ�����ץ����� Ʊ���Ǥ�������ɽ���Υ��ץ����ˤĤ��Ƥ�perlre�򻲾Ȥ��������� \*(C`$j->tr()\*(C'��\*(C`$j->s()\*(C'�Ϥ��Υ��֥������ȼ��Ȥ��֤��Τǡ� �ʲ��Τ褦������Ϣ��Ǥ��ޤ��� $j->tr("A-Z", "a-z")->s("foo", "bar"); \*(C`m/$patter/$opt\*(C'��Ŭ�Ѥ��ޤ������Υ᥽�åɤϡɥ��֥������Ȥ��֤��ʤ��� �Τǡ�\*(C`$j->s()\*(C'�Τ褦�˥᥽�åɤ�Ϣ��Ǥ��ʤ����Ȥ����դ��Ƥ��������� ����ɽ���η����˸���Τ��ä���硢->error_m��->error_s���̤��� $@������Ǥ��ޤ��� �⤷Jcode���֥������ȤΥ��󥹥����ѿ��˥��������������ʤ顢ľ�ܤ���� �˥�����������ΤǤϤʤ������������᥽�åɤ����Ѥ��ޤ��礦�ʤ��줾OOP �Ǥ��ˡ�

���ͤޤǤˡ�Jcode�ϡʰ���Ū����ˡ�Ǥ���˥ϥå����ե���󥹤�����ˡ� �����ե���󥹤�Ȥ����Ȥǡ����ԡ��ɤ��Ŭ�����Ƥ��ޤ��ʼºݤΤȤ����� ���������᥽�åɤ�Ȥ��¤ꤳ�Τ��Ȥ��Τ�ɬ�פϤ���ޤ��� �⤦���� �����ޤ����������OOP�ʤΤǤ��ˡ�

Perl 5.8.1�ʹߤǤϡ��ϥå����ե���󥹤�Ȥ��褦���ѹ�����ޤ����� ����ˤ�ꡢJcode�γ�ĥ�Ϥ�Τ�������ñ�ˤʤ�ޤ���

$j->r_str

EUCʸ����ؤΥ�ե���󥹡� Perl 5.8.1�ʹߤǤ�UTF-8�ե饰��Ω�ä�UTF-8ʸ����ؤΥ�ե���󥹤Ǥ���

$j->icode

ľ������ˤ���������ʸ�������ɡ�

$j->nmatch

�ޥå���������$j->tr����Ȥä��Ȥ��ˡ�

���֥롼����

($code, [$nmatch]) = getcode($str)

$str��ʸ�������ɤ��֤��ޤ����֤륳���ɤϰʲ����̤�Ǥ��� ascii Ascii �����ܸ쥳���ɤ�ޤޤʤ��� binary Binary �ʥƥ����ȥե�����ǤϤʤ��� euc EUC-JP sjis SHIFT_JIS jis JIS (ISO-2022-JP) ucs2 UCS2 (Raw Unicode) utf8 UTF8 �����顼����ƥ����Ȥ���������󥳥�ƥ����Ȥ�Ȥ��ȡ���ʸ��ʬ�� �����ɤ����Ĥ��ä��Τ����֤��ޤ���������ǽҤ٤��褦�ˡ�$str��\$str �Ǥ⹽���ޤ��� jcode.pl ���ѼԤ����ء� ���δؿ���jcode::getcode()��100%��̸ߴ��� ����ޤ��������ޤ����ۤ�100%�� * ����ͤ�����ΤȤ������ν��֤ϵդȤʤ�ޤ��� jcode::getcode()��$nmatch��ǽ���֤��ޤ��� * jcode::getcode()�ϡ�EUCʸ����SJISʸ���ο����������Ȥ���'undef'�� �֤��ޤ��� Jcode::getcode()��EUC���֤��ޤ��������Jcode.pm�ˤ� ��֤��ʤ�����Ǥ��� $str��$ocode�ǻ��ꤷ��ʸ�������ɤ��Ѵ����ޤ���$icode����ꤹ��ȡ� ����ʸ�����getcode()�ǥ����å���������ˡ�$icode�Ȳ��ꤷ�ޤ��� ������ǽҤ٤��褦�ˡ�$str��\$str�Ǥ⹽���ޤ��� jcode.pl ���ѼԤ����ء� ���δؿ���jcode::convert()��100%��̸ߴ��� ����ޤ���

�Х�

Perl��5.8.1�ʹߤξ�硢Jcode��Encode�Υ�åѡ��Ȥ��ƿ����񤤤ޤ��� �ĤޤꡢJcode��Encode��ΥХ��αƶ�������ޤ���

�ռ�

���Υѥå������ϡ�ư�����ǥ����󤽤��ƥ����ɤ�¿�������ǡ� ���� ���� <[email protected]>���Perl4�饤�֥��jcode.pl����äƤ��ޤ���

��� ��� <[email protected]>��ϡ���ȯ�����˽�����ʳ����� ����ɽ�����᤭�����������򤷤Ƥ���ޤ�����

[email protected] �� JEncode �ˤϡ�Jcode��Encode��ɤ�ͻ�礵����� �����������礭�ʷ���������ޤ������ޤ��������ܸ�ޥ˥奢����£���� ���������ޤ�����

������Jcode \s-1ML\s0 <[email protected]>�γ����󡣤�����ã�ʤ��ˤϡ� �����ޤǴ������ʤ��ä����ȤǤ��礦��

����

Encode

<http://www.iana.org/assignments/character-sets>

���

Copyright 1999-2005 Dan Kogai <[email protected]>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.