PHP - Gerando arquivo em UTF-8 com fwrite() e utf8_encode()
Encontrei uma dica muito interessante do "cutmaster at fearlesss dot com" que postou no site php.net. Ele mostrou como gerar um arquivo realmente no formato UTF-8. Segue a tradução de seu post.
"Para aqueles que, como eu, gastaram muito tempo para entender porque fwrite() não criava arquivos utf-8 de verdade, aqui vai uma explicação que encontrei:
Tentei fazer algo com:"
<?php
myString = utf8_encode("Test with accents éèàç");
fh=fopen('test.xml',"w");
write($fh,$myString);
close($fh);
"Por alguma razão misteriosa, o arquivo gerado traz os acentos sem o padrão utf-8.
Tentei binário, etc. etc. e finalmente encontrei a solução.
Parece que fwrite() PRECISA ter a função utf8_encode() DENTRO de seus parâmetros, como segue abaixo."
<?php
$myString = "Test with accents éèàç";
$fh=fopen('test.xml',"w");
fwrite($fh,utf8_encode($myString));
fclose($fh);
Simples e eficiente, bati cabeça procurando uma solução antes de chegar aqui e encontrar mastigadinha. Obrigado pelo Post... Já tinha criado uma dúzia de funções, mandando á como á e o escambal, mas nada!
ResponderExcluir* mandando á como & A acute ;
ExcluirAjudou muito!
ResponderExcluir:-)
ExcluirEste comentário foi removido pelo autor.
ResponderExcluirPassei dias caçando esta solução. Muito obrigado mesmo!
ResponderExcluir