皆様の助言などもあり解決しました。ありがとうございました。

しかし、いくつか不明な点があります。PHPマニュアルのサンプルでは
mb_http_output('SJIS') と ob_start('mb_output_handler') の二つは
セットで使われていましたが、テストしたところ文字化けします。
>>5 にある問題かとも思い、header() を外してみても変わらずで
結局、ob_start('mb_output_handler') を外して上手くいきました。

現状では問題点はありませんが、mb_output_handler が無い場合の
弊害はあるのでしょうか。

<?php
mb_http_output('SJIS');
//ob_start('mb_output_handler');
header("Content-type: text/html; charset=Shift_JIS");

$str = '<html><head>
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title></head>
<body>あいうえお<br>かきくけこ</body></html>';

echo $str;
?>