If I am changing servers, I usually migrate my wordpress database by going to phpmyadmin and doing an SQL Export on one server and doing an Import on the other server.
I notice that in this process, some times my data gets malformed.
For example, " : ' ~ ... etc, these characters may turn into weird stuff like ‚ÂÂ
What am I doing wrong?
Check you're using the same encoding/collation in the source and destination database servers. If you're not specifying anything in particular you could be getting the default treatment on both, and that could be Latin-1 in one and UTF-8 in the other - specially if the distributions are different.
Also check that the Wordpress settings are the same in the source and destination. This may come in handy: http://www.mydigitallife.info/how-to-convert-character-set-and-collation-of-wordpress-database/.