=encoding euc-jp =head1 NAME =begin original MIME::QuotedPrint - Encoding and decoding of quoted-printable strings =end original MIME::QuotedPrint - quoted-printable 文字列のエンコードとデコード =head1 SYNOPSIS use MIME::QuotedPrint; $encoded = encode_qp($decoded); $decoded = decode_qp($encoded); =head1 DESCRIPTION =begin original This module provides functions to encode and decode strings into and from the quoted-printable encoding specified in RFC 2045 - I. The quoted-printable encoding is intended to represent data that largely consists of bytes that correspond to printable characters in the ASCII character set. Each non-printable character (as defined by English Americans) is represented by a triplet consisting of the character "=" followed by two hexadecimal digits. =end original このモジュールは RFC 2045 - I で定義されている quoted-printable エンコーディングと文字列の間のエンコードとデコードを 行なう関数を提供するモジュールです。 quoted-printable エンコーディングは、 ASCII 文字集合での表示可能な文字に対応するバイトで主に構成される データを表すことが意図されています。 (イギリス系アメリカ人によって定義される)表示可能でない 文字は "=" の後に 16 進数がつく 3 文字によって表されます。 =begin original The following functions are provided: =end original 以下の関数が提供されます: =over 4 =item encode_qp($str) =item encode_qp($str, $eol) =item encode_qp($str, $eol, $binmode) =begin original This function returns an encoded version of the string ($str) given as argument. =end original この関数は引数として与えられた文字列 ($str) のエンコードされた版を 返します。 =begin original The second argument ($eol) is the line-ending sequence to use. It is optional and defaults to "\n". Every occurrence of "\n" is replaced with this string, and it is also used for additional "soft line breaks" to ensure that no line end up longer than 76 characters. Pass it as "\015\012" to produce data suitable for external consumption. The string "\r\n" produces the same result on many platforms, but not all. =end original 2 番目の引数 ($eol) は、行末並びに使われます。 これはオプションで、デフォルトは "\n" です。 "\n" が現れる度にこの文字列に置き換えられ、行が 76 文字を 超えないようにするための追加の「ソフト改行」にも使われます。 外部で使われるのに適したデータを生成するためには、 "\015\012" を渡してください。 文字列 "\r\n" は多くのプラットフォームで同じ結果になりますが、 全てではありません。 =begin original The third argument ($binmode) will select binary mode if passed as a TRUE value. In binary mode "\n" will be encoded in the same way as any other non-printable character. This ensures that a decoder will end up with exactly the same string whatever line ending sequence it uses. In general it is preferable to use the base64 encoding for binary data; see L. =end original 3 番目の引数 ($binmode) に真を渡すと、バイナリモードを選択します。 バイナリモードでは "\n" は他の表示可能でない文字と同じ方法で エンコードされます。 これにより、デコード側が行末並びとして何を使っているかに関わらず、 完全に同じ文字列を得られるようになります。 一般的に、バイナリデータに対しては base64 エンコーディングを使う方が 好ましいです; L を参照してください。 =begin original An $eol of "" (the empty string) is special. In this case, no "soft line breaks" are introduced and binary mode is effectively enabled so that any "\n" in the original data is encoded as well. =end original $eol に "" (空文字列) を指定するのは特別です。 この場合、「ソフト改行」は行われず、事実上バイナリモードが有効になるので、 元のデータの "\n" はその通りにエンコードされます。 =item decode_qp($str); =begin original This function returns the plain text version of the string given as argument. The lines of the result are "\n" terminated, even if the $str argument contains "\r\n" terminated lines. =end original この関数は与えられた文字列の平文版を返します。 結果の行は、たとえ $str に "\r\n" で終端された行があっても、 "\n" で終端されます。 =back =begin original If you prefer not to import these routines into your namespace, you can call them as: =end original これらの関数をあなたの名前空間にインポートすることを好ましく 思わないのであれば、以下のように呼ぶことが出来ます: use MIME::QuotedPrint (); $encoded = MIME::QuotedPrint::encode($decoded); $decoded = MIME::QuotedPrint::decode($encoded); =begin original Perl v5.8 and better allow extended Unicode characters in strings. Such strings cannot be encoded directly, as the quoted-printable encoding is only defined for single-byte characters. The solution is to use the Encode module to select the byte encoding you want. For example: =end original Perl v5.8 以降では文字列に拡張 Unicode 文字を使えます。 そのような文字列は直接エンコードできません; quoted-printable エンコーディングは単一バイト文字に対してのみ 定義されているからです。 解決法は、求めているバイトエンコーディングを選ぶために Encode モジュールを 使うことです。 例えば: use MIME::QuotedPrint qw(encode_qp); use Encode qw(encode); $encoded = encode_qp(encode("UTF-8", "\x{FFFF}\n")); print $encoded; =head1 COPYRIGHT Copyright 1995-1997,2002-2004 Gisle Aas. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L =begin meta Translate: 川合孝典 Update: Kentaro Shirakata (3.08) Status: completed =end meta =cut