This sounds like a classical UTF-8 madness issue, you need to make sure your database accepts UTF-8 as well, have you had a look in it to see what the data is actually like?

After that you need to...