How to set Content-type properly

How to set Content-type properly

am 28.05.2011 14:23:34 von aw

Hi.

I am using :
Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 mod_jk/1.2.26 PHP/5.2.6-1+lenny9 with Suhosin-Patch
mod_ssl/2.2.9 OpenSSL/0.9.8g mod_apreq2-20051231/2.6.0 mod_perl/2.0.4 Perl/v5.10.0

In a PerlResponseHandler, I am using Template-Toolkit to generate html pages sent back to
the browser.
Before rendering a template, I set the response Content-type header, as :

$r->content_type('text/html');

This results in a HTTP response to the browser, with the following header :

Content-Type: text/html

However, I would like this :

Content-Type: text/html; charset=UTF-8

How do I do that ?

is

$r->content_type('text/html; charset=UTF-8');

admissible ?

Re: How to set Content-type properly

am 28.05.2011 14:27:10 von Joe Schaefer

Yes! ----- Original Message ----=0A> From: Andr=E9 Warnier ce-sa.com>=0A> To: mod_perl list =0A> Sent: Sat, M=
ay 28, 2011 8:23:34 AM=0A> Subject: How to set Content-type properly=0A> =
=0A> Hi.=0A> =0A> I am using :=0A> Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 mo=
d_jk/1.2.26 PHP/5.2.6-1+lenny9 with =0A>Suhosin-Patch mod_ssl/2.2.9 OpenSS=
L/0.9.8g mod_apreq2-20051231/2.6.0 =0A>mod_perl/2.0.4 Perl/v5.10.0=0A> =0A=
> In a PerlResponseHandler, I am using Template-Toolkit to generate html p=
ages =0A>sent back to the browser.=0A> Before rendering a template, I set =
the response Content-type header, as :=0A> =0A> $r->content_type('text/htm=
l');=0A> =0A> This results in a HTTP response to the browser, with the fol=
lowing header :=0A> =0A> Content-Type: text/html=0A> =0A> However, I wo=
uld like this :=0A> =0A> Content-Type: text/html; charset=3DUTF-8=0A> =
=0A> How do I do that ?=0A> =0A> is=0A> =0A> $r->content_type('text/html; =
charset=3DUTF-8');=0A> =0A> admissible ?=0A> =0A> =0A> =0A>

Re: How to set Content-type properly

am 28.05.2011 15:59:49 von aw

Thank you.

May I suggest a slight improvement in the online doc at
http://perl.apache.org/docs/2.0/api/Apache2/RequestRec.html# C_content_type_
then, to add this explicitly ?
Currently, it says :

quote

content_type

Get/set the HTTP response Content-type header value.

my $content_type = $r->content_type();
my $prev_content_type = $r->content_type($new_content_type);

* obj: $r ( Apache2::RequestRec object )
* opt arg1: $new_content_type (MIME type string)

Assign a new HTTP response content-type. It will affect the response only if HTTP
headers weren't sent yet.
* ret: $content_type

The current content-type value.

If $new_content_type was passed, the previous value is returned instead.
* since: 2.0.00

For example, set the Content-type header to text/plain.

$r->content_type('text/plain');

If you set this header via the headers_out table directly, it will be ignored by Apache.
So do not do that.

unquote

Maybe just an additional example :

$r->content_type('text/plain; charset=UTF-8');



Joe Schaefer wrote:
> Yes!
>
>
>
> ----- Original Message ----
>> From: André Warnier
>> To: mod_perl list
>> Sent: Sat, May 28, 2011 8:23:34 AM
>> Subject: How to set Content-type properly
>>
>> Hi.
>>
>> I am using :
>> Apache/2.2.9 (Debian) DAV/2 SVN/1.5.1 mod_jk/1.2.26 PHP/5.2.6-1+lenny9 with
>> Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g mod_apreq2-20051231/2.6.0
>> mod_perl/2.0.4 Perl/v5.10.0
>>
>> In a PerlResponseHandler, I am using Template-Toolkit to generate html pages
>> sent back to the browser.
>> Before rendering a template, I set the response Content-type header, as :
>>
>> $r->content_type('text/html');
>>
>> This results in a HTTP response to the browser, with the following header :
>>
>> Content-Type: text/html
>>
>> However, I would like this :
>>
>> Content-Type: text/html; charset=UTF-8
>>
>> How do I do that ?
>>
>> is
>>
>> $r->content_type('text/html; charset=UTF-8');
>>
>> admissible ?
>>
>>
>>
>>
>