How to specify the MySQL character set in PHP

This article describes how to specify the character set when you connect to a MySQL database using one of the following methods:

  • MySQL Improved (mysqli) PHP extension
  • PDO (PHP Data Objects)
This article assumes that you already know how to connect to a MySQL database using PHP. For information about how to do this, please see this article.

Determining which character sets are available on a server

To determine which character sets are available on your server for MySQL, log in to your account using SSH, and then type the following command:

grep "charset name" /usr/share/mysql/charsets/Index.xml | cut -f2 -d'"'

This command displays the list of available values that you can use in the methods described below.

To view additional information about a character set, such as its detailed description, open the /usr/share/mysql/charsets/Index.xml file in a text editor.

Setting the character set using the MySQL Improved extension

If you are using the MySQL Improved (mysqli) extension, use the set_charset method to specify the character set. For example, the following sample code demonstrates how to specify the Windows Arabic character set using mysqli:

$mysqli = new mysqli("localhost", "dbuser", "password", "database");

$mysqli->set_charset("cp1256");

Setting the character set using PDO (PHP Data Objects)

To specify the character set using PDO, all you have to do is include the charset setting in the connection string. For example, the following sample code demonstrates how to specify the UTF-8 Unicode character set using PDO:

$myPDO = new PDO('mysql:host=localhost;dbname=database;charset=utf8;', 'dbuser', 'password');

More Information

Get PHP Hosting

Article Details

  • Level: Intermediate

Did you find this article helpful? Then you'll love our support. Experience the A2 Hosting difference today and get a pre-secured, pre-optimized website. Check out our web hosting plans today.

We use cookies to personalize the website for you and to analyze the use of our website. You consent to this by clicking on "I consent" or by continuing your use of this website. Further information about cookies can be found in our Privacy Policy.