diff --git a/Makefile.PL b/Makefile.PL index f2d31e2..d33625d 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -10,11 +10,12 @@ perl_version '5.006'; build_requires 'Test::More' => 0.47; build_requires 'Test::POE::Client::TCP' => 0.10; build_requires 'Test::POE::Server::TCP' => 0.16; -requires 'POE' => 1.003; -requires 'HTTP::Status' => 0; -requires 'HTTP::Request' => 0; +requires 'Encode' => 0; +requires 'POE' => 1.003; +requires 'HTTP::Status' => 0; +requires 'HTTP::Request' => 0; requires 'HTTP::Response' => 0; -requires 'HTTP::Parser' => 0.04; +requires 'HTTP::Parser' => 0.04; auto_provides; githubmeta; WriteAll(); diff --git a/lib/POE/Filter/HTTP/Parser.pm b/lib/POE/Filter/HTTP/Parser.pm index 38e043c..3fdf5d0 100644 --- a/lib/POE/Filter/HTTP/Parser.pm +++ b/lib/POE/Filter/HTTP/Parser.pm @@ -6,6 +6,7 @@ use HTTP::Parser; use HTTP::Status qw(status_message RC_BAD_REQUEST RC_OK RC_LENGTH_REQUIRED); use base 'POE::Filter'; use vars qw($VERSION); +use Encode qw[encode_utf8]; $VERSION = '1.02'; @@ -110,7 +111,7 @@ sub _put_response { push @headers, $status_line; push @headers, $_->headers_as_string("\x0D\x0A"); - push @raw, join("\x0D\x0A", @headers, "") . $_->content; + push @raw, encode_utf8(join("\x0D\x0A", @headers, "")) . $_->content; } \@raw; @@ -135,7 +136,7 @@ sub _put_request { push @headers, $req_line; push @headers, $_->headers_as_string("\x0D\x0A"); - push @raw, join("\x0D\x0A", @headers, "") . $_->content; + push @raw, encode_utf8(join("\x0D\x0A", @headers, "")) . $_->content; } \@raw;