中川@東京武蔵野です。
-----
$data = i18n_convert( $data, "SJIS" ) ;
header( 'Content-disposition: attachment; filename=psname.csv' ) ;
header( 'Content-Type: application/octet-stream' ) ;
header( 'Content-Length: ' . strlen( $data ) ) ;
# SJISに変換したデータをI18Nフィルタを通さずに出力する
i18n_http_output("pass");
print $data ;
-----
うちでは、↑などとやって、ファイルに保存せずに、直接ブラウザに送り付けています。
php3.0.18環境ですので、php4だとフィルタ関数は適宜変更してください。