I was developing a bi-lingual website, so my custom CMS should be able to accept and display both English and non English characters. For English characters, it’s a piece of cake. But for French characters, I have pulling my hair for days to find out what went wrong with my script.
I have set the database to use UTF-8 encoding, but every time I inserted the text it’s messed up. French characters become a horror, unreadable for everyone.
After several days –literally– I have found the solution: I must set the character set into UTF-8 right before I insert the data!
< ?php mysql_query("SET CHARACTER SET utf8"); //<--the key! mysql_query("insert into data values ('$french_chars')"); ?>
SET CHARACTER SET utf8 will tell MySQL to store the inserted data using UTF-8 encoding. And it works for me.
When importing CSV data into my MySQL database using PHPMyAdmin, I found following error: Invalid field count in csv input on line 1.
It’s odd since I’ve manually count field numbers and compared with column on my CSV files, they’re exactly match.
Then I found something strange. PHPMyAdmin is automatically use semicolon ( ; ) as field delimiter instead of comma ( , ). Quick fix for this problem is to change the delimiter symbol manually.
In the picture above, I replaced semicolon (rounded with blue circle) with comma and everything is alright.