MIME-Base64-3.08 > MIME::QuotedPrint
Other versions:


MIME::QuotedPrint - Encoding and decoding of quoted-printable strings

MIME::QuotedPrint - quoted-printable 文字列のエンコードとデコード


 use MIME::QuotedPrint;

 $encoded = encode_qp($decoded);
 $decoded = decode_qp($encoded);


This module provides functions to encode and decode strings into and from the quoted-printable encoding specified in RFC 2045 - MIME (Multipurpose Internet Mail Extensions). 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.

このモジュールは RFC 2045 - MIME (Multipurpose Internet Mail Extensions) で定義されている quoted-printable エンコーディングと文字列の間のエンコードとデコードを 行なう関数を提供するモジュールです。 quoted-printable エンコーディングは、 ASCII 文字集合での表示可能な文字に対応するバイトで主に構成される データを表すことが意図されています。 (イギリス系アメリカ人によって定義される)表示可能でない 文字は "=" の後に 16 進数がつく 3 文字によって表されます。

The following functions are provided:


encode_qp($str, $eol)
encode_qp($str, $eol, $binmode)

This function returns an encoded version of the string ($str) given as argument.

この関数は引数として与えられた文字列 ($str) のエンコードされた版を 返します。

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.

2 番目の引数 ($eol) は、行末並びに使われます。 これはオプションで、デフォルトは "\n" です。 "\n" が現れる度にこの文字列に置き換えられ、行が 76 文字を 超えないようにするための追加の「ソフト改行」にも使われます。 外部で使われるのに適したデータを生成するためには、 "\015\012" を渡してください。 文字列 "\r\n" は多くのプラットフォームで同じ結果になりますが、 全てではありません。

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 MIME::Base64.

3 番目の引数 ($binmode) に真を渡すと、バイナリモードを選択します。 バイナリモードでは "\n" は他の表示可能でない文字と同じ方法で エンコードされます。 これにより、デコード側が行末並びとして何を使っているかに関わらず、 完全に同じ文字列を得られるようになります。 一般的に、バイナリデータに対しては base64 エンコーディングを使う方が 好ましいです; MIME::Base64 を参照してください。

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.

$eol に "" (空文字列) を指定するのは特別です。 この場合、「ソフト改行」は行われず、事実上バイナリモードが有効になるので、 元のデータの "\n" はその通りにエンコードされます。


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.

この関数は与えられた文字列の平文版を返します。 結果の行は、たとえ $str に "\r\n" で終端された行があっても、 "\n" で終端されます。

If you prefer not to import these routines into your namespace, you can call them as:

これらの関数をあなたの名前空間にインポートすることを好ましく 思わないのであれば、以下のように呼ぶことが出来ます:

  use MIME::QuotedPrint ();
  $encoded = MIME::QuotedPrint::encode($decoded);
  $decoded = MIME::QuotedPrint::decode($encoded);

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:

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;


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.