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 your public_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

<?php  
     
// Fill in your Server, User, Database, Password, and Collation configuration below   
$db_server = 'localhost';   
$db_user = 'database user';   
$db_password = 'password';   
$db_name = 'database name';   
$char_set = 'new character set';  

// 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

If you need further assistance please feel free to contact our support department.

Like this Article?
OMER_AYTAC 2012-01-09 11:47 pm
this updates the tables but not the table entities. they still remain unupdated so useless..

Login to comment.

Your Opinion Matters

... but we need to know what you're thinking!

I'm Brad Markle, your friendly Community Support technician, and I wrote the article you're looking at now. I like to think it's perfect, but I'm sure you have some suggestions. Please, let me know what they are!

Feedback
Your Email Address
Because we'd like to talk with you!

We've been listening!

2013-02-15 06:19 am
Changed ALTER TABLE $table DEFAULT CHARACTER SET $char_set COLLATE utf8_general_ci to ALTER TABLE $table CONVERT TO CHARACTER SET $char_set COLLATE utf8_general_ci.
2013-02-14 09:37 am
Updated the formatting and included vital headings.
2013-02-14 09:29 am
Added vital headings and reformatted to be easier to read.

Latest Questions

If you need some help, submit your question to our Community!
We guarantee a response within 60 minutes (8am - 9pm EST, Monday - Friday)
Ask a Question!
Recent Questions
  1. Please help--I'm trying to get a script to work.
  2. i would like to know how to set up phpmailer to email from a mysql database
  3. I can't access my website

Need more Help?

Search

Ask the Community!

Get help with your questions from our community of like-minded hosting users and InMotion Hosting Staff.

Current Customers

Chat: Click to Chat Now E-mail: support@InMotionHosting.com
Call: 888-321-HOST (4678) Ticket: Submit a Support Ticket

Not a Customer?

Get web hosting from a company that is here to help. Sign up today!