die、exitで日本語が化ける

 単純に
die('DBにアクセスできません。');
 と書いたとすると、ある環境で表示できたとしても、別の環境では化けたりします。文字コードを指定していないので、当然と言えば当然です。
 英数字だけのメッセージにするという手もありますが、日本語等Ascii文字以外を使いたい場合は、HTTPのレスポンスヘッダで文字コードを指定すればいいかと。dieやexitのたびに指定するのは面倒なので、関数にします。
function abort($status=0) {
	if (is_string($status) && !headers_sent()) {
		header('Content-Type: text/plain; charset=UTF-8');
	}
	die($status);
}
 とりあえずこれで、Firefox3.6、IE8では表示できました。

2010/10/10 14:28:58更新
最終更新:2010年10月10日 14:28