What are the best practices for setting the charset and encoding when working with forms and writing data to CSV files in PHP?

When working with forms and writing data to CSV files in PHP, it is important to set the charset and encoding properly to ensure that the data is correctly interpreted and displayed. To do this, you can use the `header()` function to set the charset in the HTTP header for forms, and use `mb_convert_encoding()` function to convert the data to the desired encoding before writing it to a CSV file.

// Set charset for form data
header('Content-Type: text/html; charset=utf-8');

// Convert data to desired encoding before writing to CSV file
$data = "Some data to write to CSV file";
$encoded_data = mb_convert_encoding($data, 'UTF-8', 'auto');

// Write encoded data to CSV file
$file = fopen('data.csv', 'w');
fputcsv($file, array($encoded_data));
fclose($file);