summaryrefslogtreecommitdiff
path: root/fml/doc/ja/tutorial/module/encode.sgml
blob: 5309876e96da84179df1fe4a82e0c2ec3f7e42bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<!--
   $FML$
-->

<chapter id="module.mail.message.encode">
	<title>
	Mail::Message::Encode ���饹
	</title>

<para>
[��ե����]
fml-help ML's Count: 02012, 02013, 02016 �ʤ�
</para>

<screen>
[�Ȥ�������]

	use Mail::Message::Encode;
	my $encode  = new Mail::Message::Encode;
	my $str_euc = $encode->convert( $s, 'euc-jp' );
	my $str_euc = $encode->convert( $s, 'euc-jp', 'iso-2022-jp' );

	my $encode  = new Mail::Message::Encode;
	my $status  = $encode->convert_str_ref( \$s, 'euc-jp' );
	my $status  = $encode->convert_str_ref( \$s, 'euc-jp', 'jis' );

	my $fp = sub { ... };
	$encode->run_in_chcode( $fp, $oout, $in );

   * 4.0 �ߴ�
	ues Mail::Message::Encode qw(STR2EUC);
	my $euc_s = STR2EUC( $s );
</screen>


<sect1>
	<title>
	Mail::Message::Encode ���
	</title>

<para>
���Τ� _convert_str_ref() �ˤޤȤ�롣

<screen>
   sub convert # ������ STR
   {
	my ($self, $str, $out_code, $in_code) = @_;
	_convert_str_ref(\$str, $out, $in);

        return $str;
   }


   sub convert_str_ref # ������ STR_REF
   {
	my ($self, $str, $out, $in) = @_;
	_convert_str_ref($str, $out, $in);
   }


   sub _convert_str_ref # ������ STR_REF
   {
        my ($str, $out, $in) = @_;

        # 1. ��¬
        �⤷ $in ���ʤ� �� ��¬ �� ���� �� 0 �򤫤����� 

        # 2. �Ѵ���ȥ饤
        if ($in ���狼�ä� or $in �����ꤵ�줿) {
                $out ���Ѵ�
                jcode, Jcode, Encode �� perl �С������ˤ�ä�
                ��������Ѵ��򤬤�Ф�
                return 1 ; ������
        }
        else { # principle of least surprise ?
                �ʤˤ⤷�ʤ��� str �Ϥ��Τޤ��֤�
        }

        return 0 ; # ����
   }
</screen>

<screen>
sub base64 {}
sub quoted_printable {}
</screen>
������Ȥ������ʡ�
<screen>
$x = $encode->base64($s);
</screen>
�ޤ����ߴ����Ȥ������ص��塢STR2XXX() ��������롣
<screen>
   STR2EUC(  $str, [$icode] )
   STR2JIS(  $str, [$icode] )
   STR2SJIS( $str, [$icode] )
</screen>
�� convert_str_ref �� wrap ���롣
</para>

</sect1>


<sect1>
	<title>
	run_in_chcode()
	</title>

<para>
�����¸�����β����Ǥϡ��ץ������ΰ����䤹�������ɤ��Ѵ������������
�ʤ��ؿ���¿��¸�ߤ��ޤ��������ǡ��������ä��ؿ����Ѱդ���������Ǥ���
<screen>
run_in_chcode �����

sub run_in_chcode
{
   my ($self, $proc, $s, $out_code, $in_code) = @_;

   my $conv_status = convert_str_ref($s, $EUC_JP, $in_code);
   my $proc_status = &$proc($s, @_);
   convert_str_ref($s, $out_code, $EUC_JP) if $conv_status && $out_code;
   return wantarray ? ($conv_status, $proc_status): $conv_status;
}
</screen>
</para>

</sect1>

</chapter>