如何使用PHP下载CSV时转换日文字符[复制]

There might be similar question, but I am sorry to say that I couldn't find that. So let me ask about my problem.

I have a PHP function to download CSV file from browser as below:

function outputCSV($data, $file_name = 'file.csv') {
    header('Content-Encoding: UTF-8');
    # output headers so that the file is downloaded rather than displayed
    header('Content-type: text/csv; charset=utf-8');
    header("Content-Disposition: attachment; filename=$file_name");
    header('Content-Transfer-Encoding: binary');
    # Disable caching - HTTP 1.1
    header("Cache-Control: no-cache, no-store, must-revalidate");
    # Disable caching - HTTP 1.0
    header("Pragma: no-cache");
    # Disable caching - Proxies
    header("Expires: 0");

    # Start the ouput
    $output = fopen("php://output", "w");
    fputs($output, "\xEF\xBB\xBF"); // UTF-8 BOM !!!!!
    # Then loop through the rows
    foreach ($data as $row) {
        # Add the rows to the body
        fputcsv($output, $row); // here you can change delimiter/enclosure
    }
    # Close the stream off
    fclose($output);
}

After downloading the file, while open using Windows 10 Excel app the Japanese characters are wired. But can be viewed properly using Text Editor like NotePad++.

Is there any help on this?

Thanks.

</div>