MIME::QuotedPrint - 编码和解码可打印引号字符串
use MIME::QuotedPrint;
$encoded = encode_qp($decoded);
$decoded = decode_qp($encoded);
此模块提供函数,用于将字符串编码和解码为 RFC 2045 - MIME(多用途互联网邮件扩展) 中指定的可打印引号编码。可打印引号编码旨在表示主要由对应于 ASCII 字符集中的可打印字符的字节组成的數據。每个不可打印字符(按英语美国人定义)都用一个三元组表示,该三元组由字符“=”后跟两位十六进制数字组成。
提供以下函数
此函数返回作为参数给出的字符串 ($str) 的编码版本。
第二个参数($eol)是要使用的行尾序列。它是可选的,默认值为“\n”。每个“\n”都会被替换成这个字符串,它也用于额外的“软换行”以确保没有一行超过 76 个字符。将其传递为“\015\012”以生成适合外部使用的數據。字符串“\r\n”在许多平台上产生相同的结果,但并非所有平台都如此。
第三个参数($binmode)如果传递为 TRUE 值,则会选择二进制模式。在二进制模式下,“\n”将以与任何其他不可打印字符相同的方式进行编码。这确保了解码器最终将获得完全相同的字符串,无论它使用什么行尾序列。通常,最好对二进制数据使用 base64 编码;请参阅 MIME::Base64。
一个 $eol 为 ""(空字符串)是特殊的。在这种情况下,不会引入“软换行”,并且二进制模式实际上已启用,以便原始数据中的任何“\n”也会被编码。
此函数返回作为参数给出的字符串的纯文本版本。结果的行以“\n”结尾,即使 $str 参数包含以“\r\n”结尾的行。
如果您不想将这些例程导入到您的命名空间中,您可以像这样调用它们
use MIME::QuotedPrint ();
$encoded = MIME::QuotedPrint::encode($decoded);
$decoded = MIME::QuotedPrint::decode($encoded);
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;
版权所有 1995-1997,2002-2004 Gisle Aas。
此库是自由软件;您可以在与 Perl 本身相同的条款下重新分发和/或修改它。