A recent question on a mailing list was the best practices for UTF-8 and PHP/MySQL. The following are the configurations I used in my multi-language projects.
MySQL UTF-8 Configuration
# my.cnf [mysqld] default_character_set = utf8 character_set_client = utf8 character_set_server = utf8 [client] default_character_set = utf8
PHP UTF-8 Configuration
#php.ini default_charset = "utf-8"
Apache UTF-8 Configuration
#httpd.conf AddDefaultCharset UTF-8 <VirtualHost> AddCharset UTF-8 .htm </VirtualHost>
HTML file UTF-8 Configuration
<meta charset="utf-8">
PHP file UTF-8 Configuration
header('Content-type: text/html; charset=UTF-8');
MySQL connection (extra precaution)
SET NAMES utf8;
Shell UTF-8
And last but not least, even editing files in shell can be affected (.e.g UTF-8 data to be inserted into DB from file). Ensure at least
#~/.profile export LC_CTYPE=en_US.UTF-8 export LANG=en_US.UTF-8