Converter para UTF-8 caracteres ISO em php

Eu estava com o seguinte problema. Tinha que recuperar um sistema de cliente e o backup do banco de dados que a hospedagem restaurou estava toda com encode utf8 porém os dados em ISO e ASCII isso foi um saco, pois converter as colunas não funcionava de nenhum jeito e ainda teria que criar um script em php pra fazer isso. Foi então que pensei em procurar alguma solução rápida na internet, achei a loucura abaixo de fazer replace em tudo na mão pra executar no banco:

UPDATE `produtos` SET `titulo` = REPLACE(`titulo` ,'á','á');
UPDATE `produtos` SET `titulo` = REPLACE(`titulo` ,'ä','ä');
UPDATE `produtos` SET `titulo` = REPLACE(`titulo` ,'é','é');
UPDATE `produtos` SET `titulo` = REPLACE(`titulo` ,'í©','é');
UPDATE `produtos` SET `titulo` = REPLACE(`titulo` ,'ó','ó');
--- ... veja no link tudo se isso lhe ajuda.

Veja o codigo no meu Gist

Função converter ISO para UTF8

Função converter ISO para UTF8

Isso é ridículo, não é mesmo? Além de ser muito louco daria muito trabalho. Foi então que sem querer acabei achando uma função que me ajudou muito e resolver o problema de forma rápida e direta, ainda mais devido a urgência do cliente em retornar com o sistema, segue abaixo o código:

<?php 
// funcao gambiarra em php pra resolver problemas de dados não utf8 e converter corretamente.
// Fonte: https://berseck.wordpress.com/2010/09/28/transformar-utf-8-para-acentos-iso-com-php/comment-page-1/
function utf8Fix($msg){
  $accents = array("á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç", "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç");
  $utf8 = array("á","à ","â","ã","ä","é","è","ê","ë","í","ì","î","ï","ó","ò","ô","õ","ö","ú","ù","û","ü","ç","Á","À","Â","Ã","Ä","É","È","Ê","Ë","Í","Ì","Î","Ï","Ó","Ò","Ô","Õ","Ö","Ú","Ù","Û","Ü","Ç");
  $fix = str_replace($utf8, $accents, $msg);
  return $fix;
}
?>

veja mais no meu gist

Espero que tenha lhe ajudado também, sinceramente me salvou. Créditos do código é do Berseck.

Até galera.

, , , , , , , ,