1 package TestAppUnicode::Controller::Root;
6 __PACKAGE__->config(namespace => q{});
8 use base 'Catalyst::Controller';
11 my ($self, $ctx, $charset) = @_;
12 my $content_type = 'text/html';
13 if ($ctx->stash->{charset}) {
14 $content_type .= ";charset=" . $ctx->stash->{charset};
16 $ctx->res->body('<h1>It works</h1>');
17 $ctx->res->content_type($content_type);
20 sub unicode_no_enc :Local {
22 my $data = "ほげ"; # hoge!
24 $c->response->body($data);
25 $c->res->content_type('text/plain');
31 my $data = "ほげ"; # hoge!
32 $c->response->body($data); # should be decoded
33 $c->res->content_type('text/plain');
36 sub not_unicode :Local {
38 my $data = "\x{1234}\x{5678}";
39 utf8::encode($data); # DO NOT WANT unicode
40 $c->response->body($data); # just some octets
41 $c->res->content_type('text/plain');
48 $c->res->content_type('text/plain');
49 $c->response->body('LATIN SMALL LETTER E WITH ACUTE: é');
54 close *STDERR; # i am evil.
55 $c->response->body($main::TEST_FILE); # filehandle from test file
58 sub capture : Chained('/') CaptureArgs(1) {}
60 sub decode_capture : Chained('capture') PathPart('') Args(0) {
61 my ( $self, $c, $cap_arg ) = @_;
65 sub capture_charset : Chained('/') Args(1) {
66 my ( $self, $c, $cap_arg ) = @_;
67 $c->stash(charset => $cap_arg);
71 sub shift_jis :Local {
73 my $data = "ほげ"; # hoge!
74 $c->response->body($data); # should be decoded
75 $c->res->content_type('text/plain; charset=Shift_JIS');
76 $c->encoding("Shift_JIS");