HTTPx::Middleware::Unicode
MobircのMiddlewareの仕様にあわせてCatalyst::Plugin::Unicodeをそのまんま移植してみた。
package HTTPx::Middleware::Unicode; use Mouse; use utf8; sub wrap { my ( $class, $next ) = @_; sub { my $req = shift; decode_params($req); my $res = $next->($req); encode_body($res); $res; } } sub encode_body { my $response = shift; if ( $response->body && utf8::is_utf8( $response->body ) ) { utf8::encode( $response->body ); } } sub decode_params { my $request = shift; for my $value ( values %{ $request->params } ) { if ( ref $value && ref $value ne 'ARRAY' ) { next; } utf8::decode($_) for ( ref($value) ? @{$value} : $value ); } } 1;