I am creating a multilingual Web application. I use MySQL 5.1.11 on MS Windows XP SP2 and Apache 2 and PHP 5.
I have marked all my Web pages with meta tags for utf8, I set utf8 as default charset in my.ini file and I define utf8 fro each MySQL table. Everything seems to work fine while I work with my db through a Web browser. But if I open a table in MySQL Administartor or SQLyog or Aqua Data Studio, I see that every field with text contains unrecognizable symbols! And, if I put a unique index on this field and try input duplicates through a web browser, I receive that Error Duplicate entry message with the same unrecognizable symbols. At first I thought that maybe something gets converted strangely while going through a web browser and php engine, but if I use php to save the same text in the simple file, it is correct.
If I enter the text in the db with any GUI tool, I get some language-specific simbols corrupted, they become like "?" and then my web browser displays them as "?" too.
As far as I have seen simple Unicode files my experience is that only language-specific chars get coded with more than 1 byte. But it seems that MySQL codes even normal latin symbols with more than one byte because the text "MySQL is great" becomes "aeiourgklnc