.\" -*- mode: troff; coding: utf-8 -*-
.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
.\"
.\" Standard preamble:
.\" ========================================================================
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Vb \" Begin verbatim text
.ft CW
.nf
.ne \\$1
..
.de Ve \" End verbatim text
.ft R
.fi
..
.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
.ie n \{\
. ds C` ""
. ds C' ""
'br\}
.el\{\
. ds C`
. ds C'
'br\}
.\"
.\" Escape single quotes in literal strings from groff's Unicode transform.
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\"
.\" If the F register is >0, we'll generate index entries on stderr for
.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
.\" entries marked with X<> in POD. Of course, you'll have to process the
.\" output yourself in some meaningful fashion.
.\"
.\" Avoid warning from groff about undefined register 'F'.
.de IX
..
.nr rF 0
.if \n(.g .if rF .nr rF 1
.if (\n(rF:(\n(.g==0)) \{\
. if \nF \{\
. de IX
. tm Index:\\$1\t\\n%\t"\\$2"
..
. if !\nF==2 \{\
. nr % 0
. nr F 2
. \}
. \}
.\}
.rr rF
.\" ========================================================================
.\"
.IX Title "HTTP::Response::Encoding 3"
.TH HTTP::Response::Encoding 3 2024-07-13 "perl v5.38.2" "User Contributed Perl Documentation"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.nh
.SH NAME
HTTP::Response::Encoding \- Adds encoding() to HTTP::Response
.SH VERSION
.IX Header "VERSION"
\&\f(CW$Id:\fR Encoding.pm,v 0.6 2009/07/28 21:25:25 dankogai Exp dankogai $
.SH SYNOPSIS
.IX Header "SYNOPSIS"
.Vb 2
\& use LWP::UserAgent;
\& use HTTP::Response::Encoding;
\&
\& my $ua = LWP::UserAgent\->new();
\& my $res = $ua\->get("http://www.example.com/");
\& warn $res\->encoding;
.Ve
.SH EXPORT
.IX Header "EXPORT"
Nothing.
.SH METHODS
.IX Header "METHODS"
This module adds the following methods to HTTP::Response objects.
.ie n .IP """$res\->charset""" 2
.el .IP \f(CW$res\->charset\fR 2
.IX Item "$res->charset"
Tells the charset \fIexactly as appears\fR in the \f(CW\*(C`Content\-Type:\*(C'\fR header.
Note that the presence of the charset does not guarantee if the
response content is decodable via Encode.
.Sp
To normalize this, you should try
.Sp
.Vb 1
\& $res\->encoder\->mime_name; # with Encode 2.21 or above
.Ve
.Sp
or
.Sp
.Vb 3
\& use I18N::Charset;
\& # ...
\& mime_charset_name($res\->encoding);
.Ve
.ie n .IP """$res\->encoder""" 2
.el .IP \f(CW$res\->encoder\fR 2
.IX Item "$res->encoder"
Returns the corresponding encoder object or undef if it can't.
.ie n .IP """$res\->encoding""" 2
.el .IP \f(CW$res\->encoding\fR 2
.IX Item "$res->encoding"
Tells the content encoding in the canonical name in Encode.
Returns undef if it can't.
.Sp
For most cases, you are more likely to successfully find encoding
after GET than HEAD. HTTP::Response is smart enough to parse
.Sp
.Vb 1
\&
.Ve
.Sp
But you need the content to let HTTP::Response parse it.
If you don't want to retrieve the whole content but interested in its
encoding, try something like below;
.Sp
.Vb 4
\& my $req = HTTP::Request\->new(GET => $uri);
\& $req\->headers\->header(Range => "bytes=0\-4095"); # just 1st 4k
\& my $res = $ua\->request($req);
\& warn $res\->encoding;
.Ve
.ie n .IP """$res\->decoded_content""" 2
.el .IP \f(CW$res\->decoded_content\fR 2
.IX Item "$res->decoded_content"
Discontinued since HTTP::Message already has this method.
.Sp
See HTTP::Message for details.
.SH INSTALLATION
.IX Header "INSTALLATION"
To install this module, run the following commands:
.PP
.Vb 4
\& perl Makefile.PL
\& make
\& make test
\& make install
.Ve
.SH AUTHOR
.IX Header "AUTHOR"
Dan Kogai, \f(CW\*(C`\*(C'\fR
.SH BUGS
.IX Header "BUGS"
Please report any bugs or feature requests to
\&\f(CW\*(C`bug\-http\-response\-encoding at rt.cpan.org\*(C'\fR, or through the web interface at
.
I will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
.SH SUPPORT
.IX Header "SUPPORT"
You can find documentation for this module with the perldoc command.
.PP
.Vb 1
\& perldoc HTTP::Response::Encoding
.Ve
.PP
You can also look for information at:
.IP \(bu 4
AnnoCPAN: Annotated CPAN documentation
.Sp
.IP \(bu 4
CPAN Ratings
.Sp
.IP \(bu 4
RT: CPAN's request tracker
.Sp
.IP \(bu 4
Search CPAN
.Sp
.SH ACKNOWLEDGEMENTS
.IX Header "ACKNOWLEDGEMENTS"
GAAS for LWP.
.PP
MIYAGAWA for suggestions.
.SH "COPYRIGHT & LICENSE"
.IX Header "COPYRIGHT & LICENSE"
Copyright 2007 Dan Kogai, all rights reserved.
.PP
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.