Transformar UTF-8 para acentos ISO com php

Bom,

Eu tava com uma puta dificuldade com uma tabela em francês, que os nomes vinham tudo com acentuação errada… exemplo:
pagé quirion

Entre outros que não convertia corretamente na hora de exportar para um CSV
Então eu decidi fazer uma função na maneira pedreira mesmo indo olhar na DB cada acento que eu colocava para ver o correspondente…

E depois de uma boa meia hora fazendo isso criei a seguinte função

function utf8Fix($msg){
$accents = array("á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç", "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç");
$utf8 = array("á","à ","â","ã","ä","é","è","ê","ë","í","ì","î","ï","ó","ò","ô","õ","ö","ú","ù","û","ü","ç","Á","À","Â","Ã","Ä","É","È","Ê","Ë","Í","Ì","Î","Ï","Ó","Ò","Ô","Õ","Ö","Ú","Ù","Û","Ü","Ç");
$fix = str_replace($utf8, $accents, $msg);
return $fix;
}

Então eu espero que isso ajude alguem a resolver os problemas 🙂
Os meus parcialmente foram resolvidos com essa função

Mas quem sabe num futuro com ela mais completa, com outros caracteres não ajude muita gente.

Abraços

19 comentários sobre “Transformar UTF-8 para acentos ISO com php

      • HEhehe normal o wordpress converter… o código é lido pelo browser e por isso foi convertido.
        Se o seu browser lê UTF-8 o código acima que foi passando tbm se transforma em Caracteres normais, o problema é quando vc ta tentando exportar como documento CSV… não são todos os programas que abrem corretamente, o EXCELL é um que abre tudo errado.

        E por isso do código 😉

        Abraços e obrigado pela colaboração

  1. Olá Berseck. Depois de tanto tempo estamos aí devolta na luta. Seguinte, há um tempo já venho estudando flash, action sript, etc. E como sabe sempre consulto algo no seu site. Queria saber de você se teria algum (link, tutorial, livro, referência) sobre a parte do action script 2 um pouco mais avançado. Gostaria de desenvolver algo mais profissional (arquivo .as externo, classes, trabalhar com mais arquivos .swf externos, importando os arquivos .as, etc) , mas não sei nem por onde começar. Já busquei muita coisa na net, mas nunca obti um resultado satisfatório para um estudo legal e desenvolver algo consistente neste sentido. Desde já agradeço ae pela atenção cara.

  2. Nã consegui usar :s tem como me ajudar Berseck ?

    meu codigo ta assim:

    System.useCodepage = true;

    stop();
    ///////////////
    import com.greensock.*;
    import com.greensock.easing.*;

    rMovie._visible = false;
    linha._visible = false;

    ft._alpha = 0;
    esc._alpha = 0;
    cont._alpha = 0;

    var objRecebe = new LoadVars();
    var objEnvia = new LoadVars();

    objRecebe.onLoad = function(ok) {

    function checkScroll() {

    if (cont._height > mask._height + 10) {

    rMovie._visible = true;
    scrollMc.init();

    } else {
    rMovie._visible = false;
    }
    }

    if (ok) {

    function utf8Fix($msg) {
    $accents = array(“á”, “à”, “â”, “ã”, “ä”, “é”, “è”, “ê”, “ë”, “í”, “ì”, “î”, “ï”, “ó”, “ò”, “ô”, “õ”, “ö”, “ú”, “ù”, “û”, “ü”, “ç”, “Á”, “À”, “”, “Ô, “Ä”, “É”, “È”, “Ê”, “Ë”, “Í”, “Ì”, “Δ, “Ï”, “Ó”, “Ò”, “Ô”, “Õ”, “Ö”, “Ú”, “Ù”, “Û”, “Ü”, “Ç”);
    $utf8 = array(“á”, “à “, “â”, “ã”, “ä”, “é”, “è”, “ê”, “ë”, “í”, “ì”, “î”, “ï”, “ó”, “ò”, “ô”, “õ”, “ö”, “ú”, “ù”, “û”, “ü”, “ç”, “Á”, “À”, “”, “Ô, “Ä”, “É”, “È”, “Ê”, “Ë”, “Í”, “ÃŒ”, “ÃŽ”, “Ï”, “Ó”, “Ã’”, “Ô”, “Õ”, “Ö”, “Ú”, “Ù”, “Û”, “Ãœ”, “Ç”);
    $fix = str_replace($utf8, $accents, $msg);
    return $fix;
    }

    cont.texto.autoSize = true;
    cont.texto.html = true;
    //cont.texto.htmlText = objRecebe.texto;
    cont.texto.htmlText = utf8Fix(objRecebe.texto);

    //trace(objRecebe.texto);

    TweenMax.to(cont,2,{_alpha:100, ease:Quart.easeOut});
    TweenMax.to(ft,2,{_alpha:100, ease:Quart.easeOut});
    TweenMax.to(esc,2,{_alpha:100, ease:Quart.easeOut});
    car._alpha = 0;

    }

    var scrollMc = new MDScroll(rMovie, cont, mask);
    rMovie._visible = false;
    cont.setMask(mask);
    checkScroll();

    };
    objEnvia.sendAndLoad(_global.php + “institucional.php”,objRecebe,”POST”);

    ////////////////////
    TweenMax.to(fd,2,{_alpha:70, ease:Quart.easeOut});
    TweenMax.to(fexar,2,{_alpha:100, ease:Quart.easeOut});

    e da o seguinte erro:
    The identifier ‘array’ will not resolve to built-in object ‘Array’ at runtime

    o q faço ?

    Obrigadao brother

    • Então o ç ta sim na lista… Tente dar uma olhada como ele está retornando pra vc o equivalente no seu navegador, ou no banco e altere os valores.

      Mas deveria encontrar sem problema algum… isso ai que eu fiz é uma gambiarra para resolver um problema que surgiu antes disso no desenvolvimento do banco…

  3. Muito bom amigo aproveitei para colocar mais uns caracteres

    function utf8Fix($msg){
    $accents = array(“á”, “à”, “â”, “ã”, “ä”, “é”, “è”, “ê”, “ë”, “í”, “ì”, “î”, “ï”, “ó”, “ò”, “ô”, “õ”, “ö”, “ú”, “ù”, “û”, “ü”, “ç”, “Á”, “À”, “”, “Ô, “Ä”, “É”, “È”, “Ê”, “Ë”, “Í”, “Ì”, “Δ, “Ï”, “Ó”, “Ò”, “Ô”, “Õ”, “Ö”, “Ú”, “Ù”, “Û”, “Ü”, “Ç”, “ñ”, “Ñ”, “¨”, “¹”, “²”, “³”, “£”, “¢”, “¬”, “º”, “ª”);
    $utf8 = array(“á”,”à “,”â”,”ã”,”ä”,”é”,”è”,”ê”,”ë”,”í”,”ì”,”î”,”ï”,”ó”,”ò”,”ô”,”õ”,”ö”,”ú”,”ù”,”û”,”ü”,”ç”,”Á”,”À”,””,”Ô,”Ä”,”É”,”È”,”Ê”,”Ë”,”Í”,”ÃŒ”,”ÃŽ”,”Ï”,”Ó”,”Ã’”,”Ô”,”Õ”,”Ö”,”Ú”,”Ù”,”Û”,”Ãœ”,”Ç”, “ñ”, “Ñ”, “¨”, “¹”, “²”, “³”, “£”, “¢”, “¬”, “º”, “ª”);
    $fix = str_replace($utf8, $accents, $msg);
    return $fix;
    }

  4. Obrigado, usei os arrays para aprimorar um pouco e corrigir coluna a coluna direto no banco com mysql replace

    include(‘db.php’);

    $rights = array(“á”, “à”, “â”, “ã”, “ä”, “é”, “è”, “ê”, “ë”, “í”, “ì”, “î”, “ï”, “ó”, “ò”, “ô”, “õ”, “ö”, “ú”, “ù”, “û”, “ü”, “ç”, “Á”, “À”, “”, “Ô, “Ä”, “É”, “È”, “Ê”, “Ë”, “Í”, “Ì”, “Δ, “Ï”, “Ó”, “Ò”, “Ô”, “Õ”, “Ö”, “Ú”, “Ù”, “Û”, “Ü”, “Ç”);
    $wrongs = array(“á”,”à “,”â”,”ã”,”ä”,”é”,”è”,”ê”,”ë”,”í”,”ì”,”î”,”ï”,”ó”,”ò”,”ô”,”õ”,”ö”,”ú”,”ù”,”û”,”ü”,”ç”,”Á”,”À”,””,”Ô,”Ä”,”É”,”È”,”Ê”,”Ë”,”Í”,”ÃŒ”,”ÃŽ”,”Ï”,”Ó”,”Ã’”,”Ô”,”Õ”,”Ö”,”Ú”,”Ù”,”Û”,”Ãœ”,”Ç”);

    // lLAÇO DOS NOMES DAS COLUNAS
    $sql_columns = mysql_query( “SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=’mamobras_atacado’ AND TABLE_NAME=’clientes_bk'” );
    while ($colunas=mysql_fetch_array($sql_columns)){;
    print ” coluna: “.$colunas[0];
    print “

    “;

    foreach($wrongs as $c => $w){
    // REGRAVA OS CARACTERES NA COLUNA
    $success = mysql_query(“update clientes_bk set “.$colunas[0].” = replace(“.$colunas[0].”, ‘”.$w.”‘, ‘”.$rights[$c].”‘)”);
    if (!mysql_error()) print “” . $w . ” …… ” . $rights[$c];

    }

    print “

    “;
    }

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s