CGIモジュールとcharset
Posted at 2004-03-11T17:30:00+09:00 in Coding
PerlでCGIモジュールを利用する時、Content-Typeヘッダにcharsetパラメータを加えるには、headerメソッドで-charset => 'UTF-8'などと指定するわけですが、どうもtext/*なもの以外では無視され、Content-Typeヘッダにcharsetパラメータを加えてくれないみたいです。
要は、
print header(
-type => 'application/xml',
-charset => 'UTF-8',
);
だと、
Content-Type: application/xml
としか出力されないってことです。
blosxomに$blog_charsetという文字コードを指定する設定を追加しようとして、ゴニョゴニョやっていた時に気づきました。CGIモジュールのソースでcharsetパラメータを付け加えるコードが、
$type .= "; charset=$charset" if $type ne '' and $type =~ m!^text/! and $type !~ /\bcharset\b/ and $charset ne '';
となってたので、text/*以外では無視というのはどうやら当たっていたみたいです。なので、
print header(
-type => 'application/xml; charset=UTF-8',
);
こうやってやらないとダメぽ。また一つ賢くなりました。
バッド・ノウハウ!
Weblog archives
by Month
- October, 2006 (9)
- September, 2006 (23)
- August, 2006 (31)
- July, 2006 (8)
- October, 2005 (13)
- September, 2005 (24)
- August, 2005 (26)
- July, 2005 (2)
- June, 2005 (2)
- May, 2005 (13)
- April, 2005 (30)
- March, 2005 (33)
- February, 2005 (13)
- January, 2005 (10)
- December, 2004 (28)
- November, 2004 (27)
- October, 2004 (25)
- September, 2004 (38)
- August, 2004 (52)
- July, 2004 (45)
- June, 2004 (41)
- May, 2004 (48)
- April, 2004 (36)
- March, 2004 (51)
- February, 2004 (55)
- January, 2004 (63)
- December, 2003 (46)
- November, 2003 (63)
- October, 2003 (92)
- September, 2003 (61)
- August, 2003 (93)
- July, 2003 (57)
- May, 2003 (5)
- April, 2003 (35)
- March, 2003 (35)
- February, 2003 (37)
- January, 2003 (62)
- December, 2002 (32)
This page was last modified on 2005-10-15T10:14:24+09:00 (in 0.145 secs).