NAME

Catalyst::Plugin::Unicode::Encoding - Unicode aware Catalyst

SYNOPSIS

use Catalyst qw[Unicode::Encoding];

MyApp->config( encoding => 'UTF-8' ); # A valid Encode encoding

DESCRIPTION

On request, decodes all params from encoding into a sequence of logical characters. On response, encodes body into encoding.

METHODS

encoding

Returns an instance of an Encode encoding

print $c->encoding->name

OVERLOADED METHODS

finalize_headers

Encodes body into encoding.

prepare_uploads

Decodes parameters, query_parameters, body_parameters and filenames in file uploads into a sequence of logical characters.

prepare_action

Decodes request arguments (i.e. $c->request->arguments) and captures (i.e. $c->request->captures).

setup

Setups $c->encoding with encoding specified in $c->config->{encoding}.

handle_unicode_encoding_exception ($exception_context)

Method called when decoding process for a request fails.

An $exception_context hashref is provided to allow you to override the behaviour of your application when given data with incorrect encodings.

The default method throws exceptions in the case of invalid request parameters (resulting in a 500 error), but ignores errors in upload filenames.

The keys passed in the $exception_context hash are:

param_value

The value which was not able to be decoded.

error_msg

The exception recieved from Encode.

encoding_step

What type of data was being decoded. Valid values are (currently) params - for request parameters / arguments / captures and uploads - for request upload filenames.

SEE ALSO

Encode, Encode::Encoding, Catalyst::Plugin::Unicode, Catalyst.

AUTHORS

Christian Hansen, ch@ngmedia.com

Masahiro Chiba

Tomas Doran, bobtfish@bobtfish.net

LICENSE

This library is free software . You can redistribute it and/or modify it under the same terms as perl itself.