How to avoid any WordPress character encoding problems in your blog

A few days back I wrote how I almost lost my blog while it was hosted on WordPress hosting at Go Daddy. I was lucky and got all my files, and within a few hours I had uploaded all the files and the database to my dedicated server and the nameserver change had propagated so my blog was up and running again.

The only problem I had was that the punctuation wasn’t correct. WordPress was displaying some strange characters instead of semicolons, colons and apostrophes: ĂŠĂĄ. The exported database was fine and had UTF-8 character encoding. The database had the correct “utf8_general_ci” colation. WordPress files were exactly the same as before (with the correct character encoding) so I didn’t know why this was happening. I had the correct settings in my wp-config.php:

define('DB_CHARSET', 'utf8');
define('DB_COLLATE', 'utf8_general_ci');

After some testing I found that this was because I imported the database in unix without setting a character set. I was using the command “mysql -u database_user -p -h localhost database_name < database_sql_file.sql” and that probably imported the database in the default ANSI encoding.

The character set should have been set to UTF-8 while importing the database. Here is how to insert a database in UTF8 character encoding in unix (put it in one line):

mysql -u database_user -p --default_character_set utf8 -h localhost database_name
 < database_sql_file.sql

Everything should work as planned now.

Sold.Domains

About Konstantinos Zournas

Konstantinos studied Computer Engineering and Computer Science in London and lives in Athens, Greece. He works on domain names, websites and software development. Has been online since 1995 & domaining since 2002.

One comment

  1. This is just in time for me. I will be moving my wordpress sites from shared to vps soon. Thanks for the tip. I appreciate you sharing it.

Leave a Reply

Your email address will not be published. Required fields are marked *