A: 

Have you tried to set collation for the table to utf-8 or something non latin1/ascii.

Dev er dev
+2  A: 

This suggests a mismatched character set between your database (connection) and actual data.

Most likely, you're using ISO-8859-1 on your site, but MySQL thinks it should be getting UTF-8.

http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html describes what to check and how to change it. The simplest way is probably to run the query "SET NAMES latin1" when connecting to the database (assuming that's the character set you need).

Being a fan of Unicode, I'd suggest switching over to UTF-8 entirely, but I realize that this is not always a feasible option.

Edit: @markokocic: Collation only dictates the sorting order. Although this should of course match your character set, it does not affect the range of characters that can be stored in a field.

Michael Madsen
Thanks for the pointers. Client, Connection and results are set as UTF-8, database and server are set as latin1. Am I correct in assuming database and server need to be UTF-8 too?
Katy
If you go Unicode, then yes. The site should declare itself as UTF-8 as well, and any static text will need to match this. If you don't, then leave them and change the connection instead. You can do this by sending the SET NAMES query when you open it, or by changing your config files accordingly.
Michael Madsen
A: 

i have a latin_1 and special charters how to handle