I have been working with some funny html characters lately and due to the nightmare in manipulating them between mysql and php, I got the database column set to utf8, then store characters with html enity "ọ" as in the database and set the encoding on php as "utf8".
This is where mb_strlen became more useful than strlen. While strlen('') gives result as 3, mb_strlen('','UTF-8') gives 1 as expected.
But left(column1,1) in mysql still gives wrong char for a multibyte string. In the example above, I had to do left(column1,3) to get the correct string from mysql. I am now about to investigate multibyte manipulation in mysql.