CGIモジュールメモ
use CGI qw( -no_xhtml ); # CGIモジュールの吐くHTMLがXHTMLでなくなる。
テンプレート使う以上は意味はないが……。
print OUT $q->header( -charset=>'UTF-8' ); # HTMLヘッダーでの文字コードの指定。 print OUT $q->start_html( -lang=>'ja-JP', -encoding=>'UTF-8', -title=>'タイトル', -head=>$q->meta({ -http_equiv=>'Content-Type', -content=>'text/html; charset=UTF-8' }) ); # 文字コードをutf8で出力予定の時用
以下、この一文で生成されるHTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja-JP"><head><title>タイトル</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body>
ここまでやれば、どんなバカなブラウザでもutf8であることを誤解せんじゃろう。多分。おそらく。だといいなあ。
欲をいえば、文字コード指定のmeta要素は、title要素よりも先に記述されるべきなんだが。本来は。
ちなみに、 no_xhtml プラグマを使わなかった場合のstart_html()の生成HTMLは、以下のとおり。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP" xml:lang="ja-JP"> <head> <title>UTF-8実験</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body>