- my $type=MIME::Types->new()->type($mime) if $client_charset;
- cluck "MIME::Types type $mime not known" if $client_charset && !$type;
- $client_charset=undef() if $type && !$type->isAscii();
- $W->{"r"}->content_type($mime.(!$client_charset ? "" : "; charset=$client_charset"));
+ my $type;
+ if ($W->{"content_type"}) {
+ $type=MIME::Types->new()->type($W->{"content_type"});
+ cluck "MIME::Types type '".$W->{"content_type"}."' not known" if !$type;
+ }
+ cluck "charset='".$W->{"charset"}."' does not match content-type='".$W->{"content_type"}."'"
+ if ($W->{"charset"} ? 1 : 0) != (!$type ? 0 : $type->isAscii());
+ $W->{"r"}->content_type($W->{"content_type"}.(!$W->{"charset"} ? "" : "; charset=".$W->{"charset"}))
+ if $W->{"content_type"};