Transformar UTF-8 para acentos ISO com php

28 09 2010

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

Advertisement

Actions

Information

12 responses

24 10 2010
Bill Gates

muito bom, gostei!

11 11 2010
Vanessa Baptista

Boa tarde,

Se você instalar o plugin HTML tag no Notepad ++, apertando ctrl+E, ele dá encode em todo o código.
Exemplo:
Texto normal: Isto é legal.
Texto no Notepad++: Isto é legal.

11 11 2010
Vanessa Baptista

ops, o wordpress converteu:

Texto no Notepad++: Isto & e acute; legal. (não tem espaço entre &,e,acute)

11 11 2010
berseck

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

9 12 2010
valdir

Excelente função, estava aqui com o mesmo problema. Parabéns!

27 01 2011
Alcides Lopes

Berseck você é o cara! eu estava precisando isso
obrigadíssimo!

28 01 2011
Daniel Malaquias

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.

5 09 2011
GMRShop

excelente dica obrigado!!!!

5 09 2011
erosmr

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

5 09 2011
berseck

Esse código é PHP não em flash….
Crie a mesma função em flash com as opções que o flash lhe dá.

Abraços

26 12 2011
Marco

Cara, nota 1000, muito obrigado!

9 01 2012
NoiaTec

Muito Obrigado!
Me ajudou muito aqui no serviço!!!
Abraços

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s




Follow

Get every new post delivered to your Inbox.