Apache-Filter-HanConvert

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

____________________________________________________________________________
[  2690] By: autrijus                              on 2002/12/12  06:47:15
        Log: * This be 0.02.
	   ! HanConvert.pm
____________________________________________________________________________
[  2689] By: autrijus                              on 2002/12/12  06:40:06
        Log: * added proper charset detection and rewriting.
	   ! HanConvert.pm
____________________________________________________________________________
[  2679] By: autrijus                              on 2002/12/11  17:08:05
        Log: * abigail hinted us toward Accept-Charset.
	   ! HanConvert.pm
____________________________________________________________________________
[  2678] By: autrijus                              on 2002/12/11  17:07:48
        Log: * changes and signatures.	
	   + Changes SIGNATURE
____________________________________________________________________________

HanConvert.pm  view on Meta::CPAN

    'ST'    => 'simp-trad',
    'XS'    => 'trad-simp',
    'XT'    => 'simp-trad',
);

my %encodings = (
    'T'	    => 'HanConvertToEncodingTraditional',
    'S'	    => 'HanConvertToEncodingSimplified',
);

my %charsets = (
    'T'	    => qr{
	big-?5				    |
	big5-?et(:en)?			    |
	(?:tca|tw)[-_]?big5		    |
	big5-?hk(?:scs)?		    |
	hk(?:scs)?[-_]?big5		    |
	MacChineseTrad			    |
	cp950				    |
	(?:x-)winddows-950		    |
	(?:cmex[-_]|tw[-_])?big5-?e(?:xt)?  |

HanConvert.pm  view on Meta::CPAN

    }

    return Apache::DECLINED unless $to_variant;

    $to_encoding ||= $r->dir_config($encodings{$to_variant});
    
    if (!$to_encoding) {
	my $chars = $r->headers_in->get('Accept-Charset');

	$to_encoding = $1
	    if $chars =~ /\b($charsets{$to_variant})\b/i;
    }

    my $var_enc	   = $variants{"$from_variant$to_variant"} || 'utf8';
    $from_encoding = Encode::resolve_alias($from_encoding) || 'utf8';
    $to_encoding   = Encode::resolve_alias($to_encoding)   || 'utf8';

    return Apache::DECLINED if $from_encoding eq $to_encoding
			    and $from_variant eq $to_variant;

    my $charset = ($to_encoding eq 'utf8' ? 'utf-8' : $to_encoding);
    $content_type =~ s/(?:;charset=[^;]+(.*))?$/;charset=$charset$1/;
    $r->content_type($content_type);

    my $c = $filter->c;
    my $bb_ctx = APR::Brigade->new($c->pool, $c->bucket_alloc);
    my $data = '';

    while (!$bb->empty) {
	my $bucket = $bb->first;

	$bucket->remove;



( run in 1.548 second using v1.01-cache-2.11-cpan-39bf76dae61 )