1 |
wakaba |
1.1 |
<?xml version="1.0" encoding="iso-2022-jp"?>
|
2 |
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
3 |
|
|
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
4 |
|
|
<html xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml">
|
5 |
|
|
<head>
|
6 |
|
|
<title xml:lang="en">Message::* Perl modules</title>
|
7 |
|
|
<link rel="index" href="./" />
|
8 |
|
|
<?xml-stylesheet href="/s/simpledoc"?>
|
9 |
|
|
<link rel="stylesheet" href="/s/simpledoc" />
|
10 |
|
|
<link rev="made" href="mailto:w@suika.fam.cx" />
|
11 |
|
|
<link rel="copyright" href="/c/pd" title="Public Domain." />
|
12 |
|
|
<meta name="author" content="��t" />
|
13 |
|
|
<meta name="keywords" content="Perl, module, pm, Message, RFC 822, RFC 2822, RFC 1036, son-of-RFC 1036, MIME, Usefor, HTTP, CGI, header, field" />
|
14 |
|
|
</head>
|
15 |
|
|
<body>
|
16 |
|
|
<h1>Message::* Perl modules</h1>
|
17 |
|
|
|
18 |
|
|
<h2>�͂��߂̂͂��߂�</h2>
|
19 |
|
|
|
20 |
|
|
<p>���Ƃ��� Perl �ŏ����ꂽ CGI script, ������f���Ȃɂ́A
|
21 |
|
|
����Ȃ�����Ȃ� code ���ڂ��Ă����肵�܂��B</p>
|
22 |
|
|
|
23 |
|
|
<pre class="application-x-perl">
|
24 |
|
|
jcode'convert(*from, "jis");
|
25 |
|
|
jcode'convert(*subject, "jis");
|
26 |
|
|
jcode'convert(*message, "jis");
|
27 |
|
|
open (MAIL, "| $sendmail");
|
28 |
|
|
print MAIL "From: $mail ($from)\n";
|
29 |
|
|
print MAIL "To: $mailto\n";
|
30 |
|
|
print MAIL "Subject: $subject\n";
|
31 |
|
|
print MAIL "\n";
|
32 |
|
|
print MAIL "$message";
|
33 |
|
|
print MAIL "\n";
|
34 |
|
|
close (MAIL);
|
35 |
|
|
</pre>
|
36 |
|
|
|
37 |
|
|
<p>����ł͎��F�����ǂ��Ȃ��ł����A��������C�����ԈႦ���
|
38 |
|
|
�ςȃ��b�Z�[�W�𑗐M���Ă��܂��܂��B
|
39 |
|
|
(�M�҂͂�������イ�͂܂��Ă܂���:-)
|
40 |
|
|
(����ɑ����� code �ł́A
|
41 |
|
|
HTML �ł̃N���X�T�C�g�X�N���v�e�B���O (CSS) ����
|
42 |
|
|
�ގ��̖��ւ̑Ώ������Ă��܂���B)</p>
|
43 |
|
|
|
44 |
|
|
<p>�I�u�W�F�N�g�w����������Ď��̂悤�Ȋ����Ń��b�Z�[�W��
|
45 |
|
|
�\���������Ƃ���ł��B</p>
|
46 |
|
|
|
47 |
|
|
<pre class="application-x-perl">
|
48 |
|
|
use Message::Entity;
|
49 |
|
|
my $msg = new Message::Entity;
|
50 |
|
|
my $hdr = $msg->header;
|
51 |
|
|
$hdr->add ('From')->add ('me@bar.example');
|
52 |
|
|
$hdr->add ('To')->add ('foo@bar.example', display_name => 'Mr. foo');
|
53 |
|
|
$hdr->add ('Subject' => $subject);
|
54 |
|
|
$msg->body ($body);
|
55 |
|
|
|
56 |
wakaba |
1.2 |
# $smtp->send �� SMTP �ő��M���� method �Ɖ���B
|
57 |
|
|
$smtp->send ($msg);
|
58 |
wakaba |
1.1 |
</pre>
|
59 |
|
|
|
60 |
|
|
<p><a href="http://www.cpan.org/" xml:lang="en">CPAN</a> ��T���ƁA
|
61 |
|
|
����Ɏ����悤�Ȃ��Ƃ��ł������ȃ��W���[���͂���悤�ł����A
|
62 |
|
|
���ۂɎg���Ă݂�ƁA�^����l�ɂ���Ă� <a href="urn:ietf:rfc:822">RFC 822</a>/<a href="urn:ietf:rfc:2822">2822</a> �Ɉᔽ����
|
63 |
|
|
���ʂ��o�͂���Ȃǂ̕s��������܂��B (�Ⴆ���̗��
|
64 |
|
|
<code xml:lang="en">To:</code> �̈�Ɏg���Ă���
|
65 |
|
|
<code xml:lang="en">display_name</code> �Łu.�v���܂܂�܂����A
|
66 |
|
|
RFC 2822 �I�ɂ͐V�������b�Z�[�W�ł͌݊����̂���
|
67 |
|
|
<code xml:lang="en" class="bnf rfc2822">quoted-string</code>
|
68 |
|
|
�ɂ���K�v������܂��B���������̂܂o�͂���܂��B)</p>
|
69 |
|
|
|
70 |
|
|
<p class="note">�Q�l: �u.�v�̏ꍇ�� RFC 2822 �I�ɂ͐���������
|
71 |
|
|
����Ȃ���Ȃ�܂��� (�o�͂͂��ׂ��łȂ�)�A
|
72 |
wakaba |
1.2 |
����ȊO�̕����A�Ⴆ�ΐ��䕶�� <code class="character">ESCAPE</code> �ł������悤�ɂȂ�܂��B
|
73 |
wakaba |
1.1 |
������͊��S�ɊԈႢ�ł��B</p>
|
74 |
|
|
<p class="note">�Q�l: �������j�Ƃ��Ă͕s���Ȓl�̓��W���[����
|
75 |
|
|
�n���O�ɒe���ׂ��Ƃ����l����������ł��傤�B
|
76 |
|
|
�ł�����Ȃ͕̂s�ւł��B</p>
|
77 |
|
|
|
78 |
|
|
<p>�Ƃ������ƂŁA�͂��߂͊����̃��W���[���� wrapper (���邢�͕⊮)
|
79 |
|
|
����������ł������A�Ȃ������Ⴒ���Ⴕ�Ă��āA
|
80 |
|
|
����Ȃ�ԗւ̍Ĕ����ɂȂ��Ă��ꂩ�珑���Ă݂悤�ƍl���܂����B</p>
|
81 |
|
|
|
82 |
wakaba |
1.3 |
<h2>���F (�Ƃ������̂��̂ł��Ȃ��B)</h2>
|
83 |
wakaba |
1.1 |
|
84 |
|
|
<ol>
|
85 |
wakaba |
1.3 |
<li>���\(��)�I�u�W�F�N�g�w���ł��B</li>
|
86 |
|
|
<li>RFC 822/2822 �� <code class="bnf rfc2822">group</code> �����ߏo���܂��B</li>
|
87 |
wakaba |
1.1 |
<li><a href="urn:ietf:id:draft-ietf-usefor-msg-id-alt-00">draft-ietf-usefor-msg-id-alt-00</a> �Ɋ�Â������M�A�h���X�Ȃǂɂ�� <code class="rfc2822">Message-ID</code> ���o���܂��B</li>
|
88 |
wakaba |
1.3 |
<li>�����R�[�h�Ɨ� (CSI) �ł��B (�A�� RFC 822 �ł���s����(��)�A
|
89 |
|
|
ASCII �݊��ł���K�v�͂���܂��B EBCDIC �Ƃ��͖����ł�:-<)</li>
|
90 |
|
|
</ol>
|
91 |
|
|
|
92 |
|
|
<h2>�e�d�l�ւ̑Ή���</h2>
|
93 |
|
|
|
94 |
|
|
<ol>
|
95 |
|
|
<li>�d�q���C���̃��b�Z�[�W (RFC 822, RFC 2822)
|
96 |
|
|
�̑S�@�\�� (�������������) �Ή����Ă��܂��B
|
97 |
|
|
�A�����������Ȃǂ̓`�F�b�N���Ă��܂���B (MIME ��
|
98 |
|
|
<code class="mime">Content-Transfer-Encoding</code>
|
99 |
|
|
�ƈꏏ�Ɏ����\��)</li>
|
100 |
|
|
<li>�d�q�j���[�X�L�� (<a href="/uri-res/N2L?urn:ietf:rfc:1036">RFC 1036</a>,
|
101 |
|
|
<a href="spec/son-of-RFC1036">son-of-RFC1036</a>,
|
102 |
|
|
<a href="/uri-res/N2L?urn:ietf:id:draft-usefor-article-06">
|
103 |
|
|
draft-usefor-article (06)</a>) �̓��̈�̑����ɑΉ����Ă��܂��B</li>
|
104 |
|
|
<li>MIME �̖{�̕��� (body part) �ɂ͂܂��Ή����Ă��܂���B</li>
|
105 |
|
|
<li>MIME �̒lj����̈�
|
106 |
|
|
(<a href="/uri-res/N2L?urn:ietf:rfc:2045">RFC 2045</a>,
|
107 |
|
|
<code class="mime">Content-Disposition</code>) �ɑΉ����Ă��܂��B
|
108 |
|
|
�p�����[�^�[�l�g�� (<a href="/uri-res/N2L?urn:ietf:rfc:2231">RFC 2231</a>)
|
109 |
|
|
�����o�͂Ƃ��Ɏ������܂����B</li>
|
110 |
|
|
<li>MIME �������� (<code class="mime bnf">encoded-word</code>)
|
111 |
|
|
�̉�ǂɑΉ����Ă��܂�:-) �A���ʓr�ϊ��������w�肷��K�v������܂��B
|
112 |
|
|
(<a href="#code">�����R�[�h�̈���</a>�Q��)</li>
|
113 |
|
|
<li>HTTP/1.0, HTTP/1.1, CGI/1.1, CGI/1.2 �̓��̈�̂����A
|
114 |
|
|
�����ꕔ�ɑΉ����Ă��܂��B MHTML ��
|
115 |
|
|
<code class="mime">Content-Location</code> �ɂ��Ή����Ă��܂��B</li>
|
116 |
|
|
<li>���t�`���ł� RFC 822/<a href="urn:ietf:rfc:1123">1123</a>,
|
117 |
|
|
<a href="urn:ietf:rfc:733">RFC 733</a>, asctime, ISO 8601 (HTML)
|
118 |
|
|
�ȂǂɑΉ����Ă��܂��B</li>
|
119 |
|
|
</ol>
|
120 |
|
|
|
121 |
|
|
<h2>��������</h2>
|
122 |
|
|
|
123 |
|
|
<ol>
|
124 |
|
|
<li>�ގ����W���[��(��)�̂悤�ɁA�t�@�C������t�@�C���E�n���h����
|
125 |
|
|
�n���ēǂݍ��܂��邱�Ƃ��o���܂���B</li>
|
126 |
|
|
<li>�傫�ȃ��b�Z�[�W�ł���C�ɓǂݍ��݁A�S�Ď�L���̈��
|
127 |
|
|
�ێ����Ă��܂��B�ł����炠�܂�傫�ȃ��b�Z�[�W�̏����ɂ�
|
128 |
|
|
�����Ă��Ȃ��ł��傤�B</li>
|
129 |
|
|
<li><code>CR</code> �� <code>LF</code> ���P�̂ŏo������ꍇ�A
|
130 |
|
|
�����������o���܂���B (<code>CRLF</code> �Ɠ����Ƃ݂Ȃ��܂��B)
|
131 |
|
|
�����̔łł̓I�v�V�����Ő���\�ɂȂ邩������܂���B</li>
|
132 |
|
|
<li>��������ǂ������ȋ@�\����������������܂���B
|
133 |
|
|
(<a href="mailto:w@suika.fam.cx">�d�q���C��</a>�Ȃǂŋ����ĉ������B)</li>
|
134 |
|
|
<li>�e���W���[���̃I�v�V�����̌n�����܂萮������Ă��܂���B
|
135 |
|
|
(����ł��C���������Ȃ����x�ɂ͑̌n�I���Ǝv���܂��B)</li>
|
136 |
|
|
<li>������ (document) ���ǂ������ł��B</li>
|
137 |
wakaba |
1.1 |
</ol>
|
138 |
|
|
|
139 |
|
|
<h2>����̗\��</h2>
|
140 |
|
|
|
141 |
|
|
<ol>
|
142 |
wakaba |
1.3 |
<li>�d�q�j���[�X�̓��̈� (RFC 1036,
|
143 |
|
|
<a href="spec/son-of-RFC1036">son-of-RFC1036</a>,
|
144 |
|
|
draft-usefor-article) �̊��S����</li>
|
145 |
|
|
<li><del>MIME �̓��̈�̎����B</del></li>
|
146 |
wakaba |
1.1 |
<li>�lj�/��W���̓��̈�̎����B</li>
|
147 |
|
|
<li>MIME �{�� (<code class="bnf rfc822">body</code>) �̎����B</li>
|
148 |
wakaba |
1.3 |
<li><del>���������ϊ��̂��߂� hook �̎���?</del></li>
|
149 |
wakaba |
1.1 |
<li>documentation�B</li>
|
150 |
|
|
<li>�g�p��̍쐬�B</li>
|
151 |
|
|
</ol>
|
152 |
|
|
|
153 |
wakaba |
1.3 |
<h2>�K�v��</h2>
|
154 |
|
|
|
155 |
|
|
<ol>
|
156 |
|
|
<li>perl (Perl 5.6 �ȍ~�܂���<span title="human parser">�l�ԉ�͎�</span>:-))
|
157 |
|
|
<p class="note"><code class="bnf rfc822">comment</code>
|
158 |
|
|
��\���̂ɐ��K�\�� <code class="regex">(??{ <var>code</var> })</code>
|
159 |
|
|
���g���Ă���̂ŁA��������ߏo����A
|
160 |
|
|
5.6 �ȍ~�̔łł���K�v������܂��B</p>
|
161 |
|
|
</li>
|
162 |
|
|
<li>Digest::MD2, Digest::MD5, Digest::SHA1
|
163 |
|
|
<p>Message-ID �̐����ɂ������g�p����ꍇ�̂݁A
|
164 |
|
|
<code>Message::Field::MsgID::MsgID</code> ���g���܂��B</p>
|
165 |
|
|
<p>����炪�p�ӂ���Ă��Ȃ����ł̓G���[�ɂȂ�̂ŁA
|
166 |
|
|
(����ł�) ��L���W���[���̊Y�����������������đΏ����ĉ������B</p>
|
167 |
|
|
</li>
|
168 |
|
|
<li>�����R�[�h�ϊ�����
|
169 |
|
|
<p>���{�ꃁ�b�Z�[�W�������Ȃ�K�{�ł��傤�B
|
170 |
|
|
�ڂ�����<a href="#code">�����R�[�h�̈���</a>
|
171 |
|
|
�̏͂����Q�Ɖ������B</p>
|
172 |
|
|
</li>
|
173 |
|
|
</ol>
|
174 |
|
|
|
175 |
wakaba |
1.1 |
<h2>����</h2>
|
176 |
|
|
|
177 |
|
|
<p>suika.fam.cx �� SSH account ���������̏ꍇ�A CVS �������o���܂��B</p>
|
178 |
|
|
|
179 |
|
|
<p class="example">$ cvs -d :ext:<var xml:lang="en">username</var>@suika.fam.cx:/home/cvs -d perl/lib/Message/</p>
|
180 |
|
|
|
181 |
|
|
<p>Web ��������o���܂��B <<a href="/gate/cvs/perl/lib/Message/">http://suika.fam.cx/gate/cvs/perl/lib/Message/</a>> (tarball �ňꊇ�擾���o���܂��B)</p>
|
182 |
|
|
|
183 |
|
|
<h2>���C�Z���X</h2>
|
184 |
|
|
|
185 |
|
|
<p>Message::* Perl modules �͎��R�\�t�g�E�F�A�ł��B
|
186 |
|
|
GNU GPL �ɏ]���ė��p�o���܂��B�ڂ����͊e�t�@�C�����䗗�������B</p>
|
187 |
|
|
|
188 |
|
|
<h2>�Q�l����</h2>
|
189 |
|
|
|
190 |
|
|
<ul>
|
191 |
|
|
<li><a href="spec/">�֘A����d�l�� (RFC, Internet-Draft ��)</a></li>
|
192 |
|
|
</ul>
|
193 |
|
|
|
194 |
wakaba |
1.3 |
<h2 id="code">�����R�[�h�̈���</h2>
|
195 |
|
|
|
196 |
|
|
<p>�ڂ������Ƃœ���Y�܂��̂͌��Ȃ̂�(�m)�A
|
197 |
|
|
Message::* �͕��������@�Ɨ� (CSI) ��ڎw���Ď������Ă��܂��B
|
198 |
|
|
(�A�� ASCII �̂�����݂����͒f�����Ă��܂���:-))
|
199 |
|
|
0x00 �` 0x7F �� ASCII (�܂��� ASCII �ƌ��Ȃ��ėǂ�����) �ł���
|
200 |
|
|
�ꍇ�́A Message::* ��ʂ������ƂŃf�[�^�����邱�Ƃ�
|
201 |
|
|
�����Ǝv���܂��B</p>
|
202 |
|
|
|
203 |
|
|
<p>(�������A RFC 822 �ȂNJe�d�l�ɏƂ炵�Đ���(�I)��
|
204 |
|
|
����K�v������܂��B <code class="bnf rfc822">atom</code>
|
205 |
|
|
��8�r�b�g�E�R�[�h���܂܂�Ă���Ɛ����������܂���B)
|
206 |
|
|
(�����b���A <code class="bnf rfc822">quoted-string</code>
|
207 |
|
|
�Ȃǂł�8�r�b�g���߂��Ƃ������Ƃł��B��肭�ǂ��Ă��߂�Ȃ����B)</p>
|
208 |
|
|
|
209 |
|
|
<p>����̏�Ԃł͕����R�[�h�ɊW����ϊ������͍s���܂���B
|
210 |
|
|
�������A�t�b�N�����ۂ�����(��)���w�肷�邱�ƂŁA
|
211 |
|
|
�ϊ��������������܂��B</p>
|
212 |
|
|
|
213 |
|
|
<p>�w��o����t�b�N�����ۂ����̂�2��ނł��B
|
214 |
|
|
<code>DECODER</code> �́A���̃��b�Z�[�W����͂��鎞
|
215 |
|
|
(<code class="perl">parse ()</code>) �ɓK�X�Ăяo����܂��B
|
216 |
|
|
<code>ENCODER</code> �́A���b�Z�[�W�Ƃ��ĕ��������
|
217 |
|
|
(<code class="perl">stringify ()</code> �Ȃ�) �ɓK�X�Ăяo����܂��B</p>
|
218 |
|
|
|
219 |
|
|
<p>�����̊��́A���R�A���Y�������Ăяo�����O�Ɏw�肵�Ă���
|
220 |
|
|
�K�v������܂��B
|
221 |
|
|
<samp class="perl">Message::Entity->parse</samp> �Ȃǂ���O��
|
222 |
|
|
��`���Ă����Ɨǂ��ł��傤�B</p>
|
223 |
|
|
|
224 |
|
|
<pre class="example perl">
|
225 |
|
|
require Message::MIME::Charset;
|
226 |
|
|
$Message::MIME::Charset::DECODER{'*default'} = sub {jcode::euc ($_[1])};
|
227 |
|
|
$Message::MIME::Charset::ENCODER{'*default'} = sub {jcode::jis ($_[1], 'euc')};
|
228 |
|
|
</pre>
|
229 |
|
|
|
230 |
|
|
<p>���̗�ł́A jcode.pl ��ϊ������Ɏg���܂��B
|
231 |
|
|
(�������A���� <code class="perl">require</code>
|
232 |
|
|
����Ă���Ɖ��肵�Ă��܂��B)</p>
|
233 |
|
|
<p>�ŏ��� <code class="perl">require</code> �ŁA�ϊ�������S�����Ă���
|
234 |
|
|
<code class="perl">Message::MIME::Charset</code> ��ǂݍ��݂܂��B
|
235 |
|
|
(�������Ă����Ȃ��ƁA�ォ�����l (= ���ϊ�) ��
|
236 |
|
|
<code class="perl">*default</code> ���㏑������Ă��܂��܂��B)</p>
|
237 |
|
|
|
238 |
|
|
<p>���� code ���g�����X�N���v�g�͓�����������{�� EUC
|
239 |
|
|
�ōs���Ɖ��肵�Ă��܂��B�ł�����A <code class="perl">DECODER</code>
|
240 |
|
|
�œ��{�� EUC �ɕϊ����܂��B</p>
|
241 |
|
|
<p>�܂��A���{�ꃁ�b�Z�[�W�ł� <code>ISO-2022-JP</code>
|
242 |
|
|
���g���̂����K�ł�����A <code class="perl">ENCODER</code>
|
243 |
|
|
�ł� 7�r�b�g JIS �ɕϊ����Ă��܂��B</p>
|
244 |
|
|
<p>�������s�����́A������2�ȏ�^�����܂��B
|
245 |
|
|
1�ڂ̈����͌Ăяo���� class module, ������
|
246 |
|
|
<code class="perl">$self</code> �ł��B(���̏ꍇ self �ł͂���܂���:-)
|
247 |
|
|
�ł����ʂ͕K�v�Ȃ��ł��傤�B</p>
|
248 |
|
|
<p>2�ڂ̈����͏����Ώۂ̕�����ł��B</p>
|
249 |
|
|
<p>3�ڈȍ~�̈����́A�lj��I�v�V�����̃n�b�V���ł��B
|
250 |
|
|
�������A���ݒlj��I�v�V�����͒�`����Ă��܂���B</p>
|
251 |
|
|
<p>�����Ԃ��l��(���̂Ƃ���)������ł��B
|
252 |
|
|
�������I�����������ł��B�ϊ����ʂƂ��ĉ����Ȃ��Ȃ��Ă��܂�����A
|
253 |
|
|
�����������Ԃ��č\���܂���B (<code class="perl">undef</code>
|
254 |
|
|
��������̕����]�܂����ł��傤�B)</p>
|
255 |
|
|
|
256 |
|
|
<p>���āA��L�̗�ł́u<code>*default</code>�v�� EN/DECODER
|
257 |
|
|
���w�肵�܂������A�����ɂ͑���� charset �����w��o���܂��B</p>
|
258 |
|
|
|
259 |
|
|
<pre class="perl example">
|
260 |
|
|
$Message::MIME::Charset::DECODER{'iso-2022-jp'} = sub {jcode::euc ($_[1], 'jis')};
|
261 |
|
|
</pre>
|
262 |
|
|
|
263 |
|
|
<p>�����ł́A <code>ISO-2022-JP</code> ������R�[�h�ɕϊ�����
|
264 |
|
|
���@���`���Ă��܂��B charset �� (����сu<code>*default</code>�v
|
265 |
|
|
�͕K���������ŏ����ĉ�����!)</p>
|
266 |
|
|
<p>MIME body ��A encoded-word, RFC 2231 �̊g���p�����[�^�[�l
|
267 |
|
|
�ȂǁA charset ���w�肳��Ă��鎞�͂��� charset ���̕ϊ�����
|
268 |
|
|
�Ăяo����܂��B (�w�肳�ꂽ charset ���̕ϊ���������`�̎��́A
|
269 |
|
|
�����������܂���B) ����ȊO�̏�ʂł́A <code>*default</code>
|
270 |
|
|
�Œ�`���ꂽ�����g���܂��B</p>
|
271 |
|
|
|
272 |
|
|
<p>�Ō�ɁA���{�ꃁ�b�Z�[�W�������ۂ̗�������Ă����܂��B</p>
|
273 |
|
|
|
274 |
|
|
<pre class="example perl">
|
275 |
|
|
<span class="comment">## jcode.pl ���g�p</span>
|
276 |
|
|
require 'jcode.pl';
|
277 |
|
|
require Message::MIME::Charset;
|
278 |
|
|
$Message::MIME::Charset::DECODER{'*default'} = sub {jcode::euc ($_[1])};
|
279 |
|
|
$Message::MIME::Charset::DECODER{'iso-2022-jp'} = sub {jcode::euc ($_[1], 'jis')};
|
280 |
|
|
$Message::MIME::Charset::DECODER{'euc-jp'} = sub {$_[1]};
|
281 |
|
|
$Message::MIME::Charset::DECODER{'shift_jis'} = sub {jcode::euc ($_[1], 'sjis')};
|
282 |
|
|
$Message::MIME::Charset::ENCODER{'*default'} = sub {
|
283 |
|
|
my $s = $_[1];
|
284 |
|
|
<span class="comment">## ���K��</span>
|
285 |
|
|
jcode::tr(\$s,
|
286 |
|
|
"\xa3\xb0-\xa3\xb9\xa3\xc1-\xa3\xda\xa3\xe1-\xa3\xfa\xa1\xf5".
|
287 |
|
|
"\xa1\xa4\xa1\xa5\xa1\xa7\xa1\xa8\xa1\xa9\xa1\xaa\xa1\xae".
|
288 |
|
|
"\xa1\xb0\xa1\xb2\xa1\xbf\xa1\xc3\xa1\xca\xa1\xcb\xa1\xce".
|
289 |
|
|
"\xa1\xcf\xa1\xd0\xa1\xd1\xa1\xdc\xa1\xf0\xa1\xf3\xa1\xf4".
|
290 |
|
|
"\xa1\xf6\xa1\xf7\xa1\xe1\xa2\xaf\xa2\xb0\xa2\xb2\xa2\xb1".
|
291 |
|
|
"\xa1\xe4\xa1\xe3\xA1\xC0\xA1\xA1"
|
292 |
|
|
=> '0-9A-Za-z&,.:;?!`^_/|()[]{}+$%#*@=\'"~-><\\ ');
|
293 |
|
|
jcode::jis ($s, 'euc', 'z')
|
294 |
|
|
};
|
295 |
|
|
</pre>
|
296 |
|
|
|
297 |
|
|
<pre class="example perl">
|
298 |
|
|
<span class="comment">## Jcode.pm ���g�p</span>
|
299 |
|
|
use Jcode;
|
300 |
|
|
require Message::MIME::Charset;
|
301 |
|
|
$Message::MIME::Charset::DECODER{'*default'} = sub {jcode::euc ($_[1])};
|
302 |
|
|
$Message::MIME::Charset::DECODER{'iso-2022-jp'} = sub {Jcode->new ($_[1], 'jis')->euc};
|
303 |
|
|
$Message::MIME::Charset::DECODER{'euc-jp'} = sub {$_[1]};
|
304 |
|
|
$Message::MIME::Charset::DECODER{'shift_jis'} = sub {Jcode->new ($_[1], 'sjis')->euc};
|
305 |
|
|
$Message::MIME::Charset::DECODER{'utf-8'} = sub {Jcode->new ($_[1], 'utf8')->euc};
|
306 |
|
|
$Message::MIME::Charset::ENCODER{'*default'} = sub {Jcode->new ($_[1], 'euc')->jis};
|
307 |
|
|
$Message::MIME::Charset::ENCODER{'utf-8'} = sub {Jcode->new ($_[1], 'euc')->utf8};
|
308 |
|
|
</pre>
|
309 |
|
|
|
310 |
|
|
<p>Perl 5.8 �� Encode ���W���[�����g����悤�ɂȂ�A
|
311 |
|
|
�����Ɗy�ɂȂ�Ɗ��҂��Ă��܂��B</p>
|
312 |
|
|
|
313 |
wakaba |
1.1 |
<div class="navigation">
|
314 |
|
|
[<a href="/" title="���̃T�[�o�[�̎��">/</a>
|
315 |
|
|
<a href="/map" title="���̃T�[�o�[�̈ē�" rel="index">�n�}</a>
|
316 |
|
|
<a href="/search/" title="���̃T�[�o�[�̌���">����</a>]
|
317 |
|
|
<a href="http://validator.w3.org/check/referer" xml:lang="en"><img
|
318 |
|
|
src="http://www.w3.org/Icons/valid-xhtml11" id="w3c-html"
|
319 |
|
|
alt="Valid XHTML 1.1!" style="height: 31px; width: 88px" /></a>
|
320 |
|
|
<a href="http://jigsaw.w3.org/css-validator/validator?uri=http://suika.fam.cx/~wakaba/Message-pm/introduction.ja.html" xml:lang="en">
|
321 |
|
|
<img style="width: 88px; height: 31px" id="w3c-css"
|
322 |
|
|
src="http://jigsaw.w3.org/css-validator/images/vcss"
|
323 |
|
|
alt="Valid CSS!" /></a>
|
324 |
|
|
</div>
|
325 |
wakaba |
1.3 |
<div class="update">$Date: 2002/03/21 04:09:59 $</div>
|
326 |
wakaba |
1.1 |
<ul class="myuri">
|
327 |
|
|
<li><URL:<a href="http://suika.fam.cx/~wakaba/Message-pm/introduction">http://suika.fam.cx/~wakaba/Message-pm/introduction</a>></li>
|
328 |
|
|
<li><CVS:<a href="http://suika.fam.cx/gate/cvs/perl/web/Message-pm/">suika.fam.cx:/home/cvs/perl/web/Message-pm/</a>></li>
|
329 |
|
|
</ul>
|
330 |
|
|
</body></html>
|