Apache-Filter-HanConvert
view release on metacpan or search on metacpan
____________________________________________________________________________
[ 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 )