You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by André Warnier <aw...@ice-sa.com> on 2011/05/28 14:23:34 UTC

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 ?




Re: How to set Content-type properly

Posted by André Warnier <aw...@ice-sa.com>.
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 <aw...@ice-sa.com>
>> To: mod_perl list <mo...@perl.apache.org>
>> 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 ?
>>
>>
>>
>>
> 


Re: How to set Content-type properly

Posted by Joe Schaefer <jo...@yahoo.com>.
Yes!



----- Original Message ----
> From: André Warnier <aw...@ice-sa.com>
> To: mod_perl list <mo...@perl.apache.org>
> 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 ?
> 
> 
> 
>