

If after moving your WordPress database around you find your site full of weird characters then your are likely suffering from double UTF-8 encoding problem. It is not a WordPress bug, but it is the way MySQL internals work.
To check if you are having this problem, you can try to comment out the line containing DB_CHARSET
in your wp-config.php
file. If your text is back to normal, then you are probably experiencing double UTF-8 encoding. WordPress Codex has an article covering this: http://codex.wordpress.org/Converting_Database_Character_Sets.
We released a script at our public github which puts all this together and solves the double UTF-8 encoding issue. It works by scanning all your tables and columns and generating a list of SQL statements which allow you to convert your content to UTF-8. To be run in the command line like this:
./wp-utf8ize.php > utf8ize.sql
UPDATE: There is a plugin on our Github account that does this task in a simpler way. Please note, this plugin is not maintained anymore and using it comes at own responsibility.