If your site shows question marks for non-English characters, most chances are your database character encoding is different than UTF-8.
If you’re using PHPMyAdmin, the structure of your wp_posts table should look like this:
If you see a different value for the collation, it means that the character encoding is wrong. This will cause text to display incorrectly, because the browser doesn’t know how to show non-English characters.
There’s an easy fix.
All you need to do is run ALTER statements which will go through your data and change it from its current encoding to UTF-8. The easy way to do this is to use the Convert WP Database to UTF-8 plugin. This plugin runs the following SQL statements:
ALTER TABLE $table DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ALTER TABLE $table CHANGE $field_name $field_name $field_type CHARACTER SET utf8 COLLATE utf8_bin
As you might imagine it’s a very good idea to backup your database before doing this.
Finally, to make sure that you’re not skewing away from UTF-8 in the future, edit your wp-config.php file and set the charset definition correctly. It should say:
/** Database Charset to use in creating database tables. */ define('DB_CHARSET', 'utf8');