Pues bueno, mira en mi caso me ha tocado que antes de enviar a la base de datos debo de realizar el utf8_decode($string) para se envie a la base de datos la cadena sin caracteres extraños, ahora en tu caso, por ejemplo como me estas diciendo que es el idioma el que da problema; pues no se si es al momento de ir a sacar algo de la base de datos y mostrarlo que te lo muestra mal, pero sino la forma seria antes de mostrar el texto en pantalla darle el utf8_decode($cadena).
No se si te entendi cual era tu problema
Saludos