====== MySQL Character Sets ======
* [[MySQL]]
MySQL, by default, uses LATIN1 encoding. You can verify this by opening up a ''mysql'' shell and
running this statement:
SHOW VARIABLES WHERE variable_name = 'character_set_client';
=== MySQL and PHP ===
See what encoding PHP is using to connect as:
$link = mysql_connect('localhost', 'user', 'pass');
$charset = mysql_client_encoding($link);
Likewise, you can override the setting and change it. The code must be directly after creating the MySQL connection:
$link = mysql_connect('localhost', 'user', 'pass');
$bool = mysql_set_charset('utf8', $link);
$charset = mysql_client_encoding($link);
Using ''mysqli'' driver instead of ''mysql'':
$link = mysqli_connect('localhost', 'user', 'pass', 'world');
mysqli_set_charset('utf8', $link);
$charset = mysqli_character_set_name($link);
=== Global Variables ===
You can change the database to use UTF8 by changing the runtime variables:
SET @@character_set_client = 'utf8';
SET @@character_set_connection = 'utf8';
SET @@character_set_database = 'utf8';
SET @@character_set_results = 'utf8';
SET @@character_set_server = 'utf8';
=== Database Configuration ===
MySQL needs to be configured to use UTF8, or it will still use LATIN1 by default:
[mysqld_safe]
character-set-server=utf8
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqladmin]
default-character-set=utf8
[mysqlcheck]
default-character-set=utf8
[mysqlimport]
default-character-set=utf8
[mysqlshow]
default-character-set=utf8