How to Convert a Database to UTF-8

The following mini script is used to convert existing database tables to UTF-8. Upload the script to your account as "convert.php" and modify the database connection parameters and the character set, then execute the script.

To execute the script, you simply would visit the script in any web browser. If you upload the file to yourpublic_html folder you'd visit "http://your-domain.com/convert.php".

Don't forget to replace your-domain.com with your actual domain name. Also, to get your languages to work on your site the collation will need to be utf8_general_ci.

Code to convert your database to UTF-8


// Adds the header information
header('Content-type: text/plain');  

// Connects to the MySQL database   $connection = mysql_connect($db_server, $db_user, $db_password) or die(mysql_error() );   $db = mysql_select_db($db_name) or die( mysql_error() );
// Runs the SQL query on teh database   $sql = 'SHOW TABLES'; $result = mysql_query($sql) or die( mysql_error() );
// Runs a loop that finds all collations within the database and changes it to the new collation   while ( $row = mysql_fetch_row($result) ) { $table = mysql_real_escape_string($row[0]); $sql = "ALTER TABLE $table CONVERT TO CHARACTER SET $char_set COLLATE utf8_general_ci"; mysql_query($sql) or die( mysql_error() );   print "$table changed successfully.\n"; }  
// Update the Collation of the database itself $sql = "ALTER DATABASE CHARACTER SET $char_set;"; mysql_query($sql) or die( mysql_error());   print "Database collation has been updated successfully.\n";  
// close the connection to the database mysql_close($connection);  
?>
Note! You can use this script to change the database to any character set you wish. You need to define the character set in the script to change character sets:

$char_set = 'character set';

You will need the change the utf8_general_ci to match the character set you defined in the step above. So, if you want to change the character set to "Hebrew" you'd change the line to:

$sql = "ALTER TABLE $table CONVERT TO CHARACTER SET $char_set COLLATE hebrew_general_ci";

For more information on MySQL character sets and collation please see the following link:

Character Sets and Collations in MySQL

  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

 How do I setup custom php.ini settings?

We have recently updated many of our shared hosting servers to php 5 with phpSuExec enabled. This...

 HTTP Error 500 - Internal server error

Internal Server Error help, 500 error Internal server errors can be caused by a few different...

 What is the path to public html in php?

The path to public html is: home/$cpusername/public_html/

 Error: register_globals is disabled in your PHP

If you installed a new script and are getting the 500 error trying to load the page please see...

 Do I get a Site Seal when I purchase an SSL Certificate?

Yes you do receive a Site Seal when you purchase an SSL Certificate.