You need to ensure that it's UTF-8 all the way through. Simply having the table and the page UTF-8 is not enough.
You also need to tell MySQL that its connection character set is UTF-8, by sending
SET NAMES utf8;
On each connection (typically at the beginning of each page after you connect).
Otherwise MySQL will interpret it as its default (usually latin1), convert it to utf8, then do the reverse transformation. This will have several side effects:
- Junk will be stored in the table
- Fields won't be able to store strings their full length (e.g. char(10) may not be able to store 10 chars)
- Collations (e.g. sorting, comparison) won't make much sense
And it's a severe error.
Unfortunately, if you have existing data, it will already have been trashed and you'll need to find out some (complicated) way of fixing it.
There are ways of fixing this but they're not straightforward. I'm assuming you have a significant amount of Greek text in your db which is screwed up in this way?
Mark