PHP初心者です。

現在アンケートフォームを作っているのですが

①アンケート入力
②入力確認フォーム
③回答完了ページ(この時点でアンケート内容をCSVファイルに出力)
④回答内容を確認するためのページ(ここでCSVファイルを読み込み、表示)

という構成にしております。

③の時点で

//配列をcsvファイルに書き込む準備 
$title = ['名前','出席番号','メールアドレス','性別','趣味','去年の一番の思い出','今年の抱負']; 
$vararray = [$myid,$number,$mail,$gender,$hobby,$lastyear,$thisyear]; 
//文字列をUTF-8から変換 
mb_convert_variables('SJIS-win', 'UTF-8', $title); 
mb_convert_variables('SJIS-win', 'UTF-8', $vararray); 
//ファイルへ書き込み実行 
$handle = fopen('data/data.csv','a'); 
flock($handle,LOCK_EX); 
fputcsv($handle,$title); 
fputcsv($handle,$vararray); 
flock($handle,LOCK_UN); 
fclose($handle);

というコードを書き、正常にcsvファイルに書き込みがされています。

この時にエンコードをUTF-8からShift_JISに変更したので、④で読み込みをした際に、文字化けしてしまいます。
ブラウザでエンコードをShift_JISに変更したら文字化けは消えましたので、読み込んだ時点でShift_JISのエンコードになっているのはわかったのですが、それをUTF-8に戻す術がわかりません…。
最初はmb_convert_variables('SJIS-win', 'UTF-8', $変数);
で変更すればよいのかと思いましたが状況が変わらず
setlocale(LC_ALL, 'ja_JP.UTF-8'); というものも試してみましたが、こちらでもうまくいきませんでした。

現状は下記のコードですが、うまくいきません。

<?php

setlocale(LC_ALL, 'ja_JP.UTF-8'); 
$fp = fopen("data/data.csv", "r");        //ファイルを開く 
flock($fp, LOCK_SH); //ファイルロック 
while ($array = fgetcsv( $fp )) {        //ファイルを読み込む 
    $num = count($array);                //行数カウント 
    for($i=0;$i<$num;$i++){ 
        echo '<p style="font-size:12px;">'.$array[$i].'</p>';     //とりあえず出力 
    } 
} 
flock($fp, LOCK_UN);                      //ロック解除 
fclose($fp);                              //ファイルを閉じる 
?>

詳しい方おりましたら、ご指摘いただければと思います。。

宜しくお願い致します。