if (my $wanted = shift) {
$encoding = Encode::find_encoding($wanted)
or Carp::croak( qq/Unknown encoding '$wanted'/ );
+ binmode(STDERR, ':encoding(' . $encoding->name . ')');
+ }
+ else {
+ binmode(STDERR);
}
$encoding = ref $c
$c->next::method(@_);
my $enc = $c->encoding;
+ return unless $enc;
for my $key (qw/ parameters query_parameters body_parameters /) {
for my $value ( values %{ $c->request->{$key} } ) {
my $ret = $c->next::method(@_);
+ my $enc = $c->encoding;
+ return $ret unless $enc;
+
foreach (@{$c->req->arguments}, @{$c->req->captures}) {
$_ = $c->_handle_param_unicode_decoding($_);
}
my $conf = $self->config;
- # Allow an explict undef encoding to disable default of utf-8
+ # Allow an explicit undef encoding to disable default of utf-8
my $enc = delete $conf->{encoding};
$self->encoding( $enc );
return $self->next::method(@_)
- unless $self->setup_finished; ## hack to stop possibily meaningless test fail... (jnap)
+ unless $self->setup_finished; ## hack to stop possibly meaningless test fail... (jnap)
}
sub _handle_unicode_decoding {
sub handle_unicode_encoding_exception {
my ( $self, $exception_ctx ) = @_;
- $self->log->warn($exception_ctx->{error_msg});
- return $exception_ctx->{'param_value'};
+ die $exception_ctx->{error_msg};
}
1;
This plugin is automatically loaded by apps. Even though is not a core component
yet, it will vanish as soon as the code is fully integrated. For more
-information, please refer to C<ENCODING> section at L<Catalyst>.
+information, please refer to L<Catalyst/ENCODING>.
=head1 AUTHORS