What are the potential pitfalls of not properly handling character encoding in PHP when working with HTML and MySQL?

Improper handling of character encoding in PHP when working with HTML and MySQL can lead to issues such as garbled text, incorrect display of special characters, and potential security vulnerabilities like SQL injection attacks. To solve this issue, ensure that all data is properly encoded and sanitized before being displayed or stored in the database.

// Set the character encoding for PHP
header('Content-Type: text/html; charset=utf-8');

// Set the character encoding for MySQL connection
mysqli_set_charset($conn, 'utf8');

// Sanitize input data before storing in the database
$clean_data = mysqli_real_escape_string($conn, $input_data);

// Display data with proper encoding in HTML
echo htmlentities($data, ENT_QUOTES, 'UTF-8');