Há dois pontos a serem feitos aqui. Uma é que, idealmente, todas as codificações de caracteres devem ser
UTF8
- isso é servidor, cliente, conexão e tabela. Dois é que o strlen
do PHP função conta bytes, não caracteres. Seu conjunto de caracteres de tabela pode não estar definido como
UTF8
. Você pode fazer SHOW CREATE TABLE chemicals;
para verificar isso. Você também deve adicioná-los ao seu
my.cnf
:[mysqld]
character-set-client=utf8
character-set-results=utf8
Leia mais sobre conjuntos de caracteres MySQL aqui:
Conjuntos de caracteres MySQL