[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .

Mail::Message::Encode Class

Table of Contents
Mail::Message::Encode Specification
run_in_chcode()

[References] fml-help ML's Count: 02012, 02013, 02016.

[Usage]

	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 );

  * If you want to use 4.0 compatible functions,
	ues Mail::Message::Encode qw(STR2EUC);
	my $euc_s = STR2EUC( $s );

Mail::Message::Encode Specification

The main code is within _convert_str_ref() method.

   sub convert # if the argument is STR.
   {
	my ($self, $str, $out_code, $in_code) = @_;
	_convert_str_ref(\$str, $out, $in);

        return $str;
   }


   sub convert_str_ref # if the argument is STR_REF.
   {
	my ($self, $str, $out, $in) = @_;
	_convert_str_ref($str, $out, $in);
   }


   sub _convert_str_ref # if the argument is STR_REF.
   {
        my ($str, $out, $in) = @_;

        # 1. speculate charset
        if $in unspecified -> speculat -> fail -> return 0 

        # 2. try conversion
        if ($in resolved or or $in specified in @_) {
                converted to $out charset
                (use jcode, Jcode, use Encode if perl version > 5.8).
                conversion
                return 1 ; # success
        }
        else { # principle of least surprise ?
                nothing todo ;
                return $str;
        }

        return 0 ; # failed
   }
sub base64 {}
sub quoted_printable {}
is implemented for convenience.
$x = $encode->base64($s);
For backward compatibility, STR2XXX() functoins are prepared, too.
   STR2EUC(  $str, [$icode] )
   STR2JIS(  $str, [$icode] )
   STR2SJIS( $str, [$icode] )
These wraps convert_str_ref().

[HOME] [github] [twitter] [blog] [fml4] [fml8] [北海道] Powered by NetBSD and [nuinui.net] .
Copyright (C) 1993-2022 Ken'ichi Fukamachi mail:< fukachan at fml.org >