22 de jun. de 2010

Erro de acentuação PHP

Estava trabalhando em um projeto onde eu buscava informações de um XML, problema: xml codificado como ISO-8859-1, e o site com codificação UTF-8 .
Obviamente dava problema de acentuação, mas principalmente porque o que vem do XML está tudo em maiúsculo e ao tentar deixar minúsculo e só a primeira letra maiúscula ( ucwords e strtolower ) ele se perdia na acentuação. O problema estava na função: strtolower, tentei usar utf8_encode (que codifica de iso para utf8), tentei htmlentities, e em uma tentativa de desespero, tentei utf8_decode (que codifica de utf8 para iso), afinal, vai saber né?
Porém todas as tentativas foram inválidas, já estava querendo fazer um str_replace e deixar sem acentuação mesmo, antes de fazer isso, comecei a procurar na internet uma solução, foi aí então que descobri uma função do php bem simples que resolveu todos os meus problemas:

mb_strtolower.


Caso queiram ver mais informações sobre a função é só ir no php manual que lá tem, e da mesma forma que existe mb_strtolower, existe mb_strtoupper.
Então fica a dica, sempre nos deparamos com problemas de acentuações, ainda mais quando o projeto não foi planejado pela sua empresa, ou até mesmo por você. Soluções simples são sempre melhores.
=]

Nenhum comentário:

Postar um comentário