Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Zezinho S/A LOCK

[Resolvido] Acentuação XML/PHP/MySQL

Recommended Posts

E ai pessoal beleza

 

Estou com um problema de acentuação, porem acho que deva ser alguma coisa bem facil. Segue o problema:

tenho um arquivo em XML com o encoding="utf-8" estou fazendo a leitura desse arquivo em uma pagina php que está usando o charset=utf-8 (ja tentei mudar para charset=ISO-8859-1, e os dados do arquivo onde tem acentuação deu problema), agora que tá o problema estou tentando colocar esses dados em um banco de dados MySQL, porem quando mando gravar nele dá problema em acentuação ele não aceita a forma normal da palavra e coloca um monte de caracter no local.

 

Apenas mais uma informação o collation da tbl ja usei os seguintes e nenhum deu certo: utf8 - utf8_general_ci, utf8 - utf8_unicode_ci, utf8 - utf8_general_ci, latin1 - default collation, latin1 - latin1_general_ci, latin1 - latin1_swedish_ci.

 

Como devo fazer para tratar esse problema quando vai as informações para o banco, sabendo que não tenho como alterar o arquivo XML.

 

Obs.: isso so da erro quando vou gravar no banco, as informações na tela estão corretas.

 

Valeuuuuuu

 

Aguardo retorno

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom pode ser a codificação do arquivo e não da variavel/stirng, programa básico como Notepad++ faz isso.

 

certifique-se também que seu arquivo XML tem o [CDATA] se não tiver pode causar problemas a codificação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, quanto ao notepad++ não entendi direito o pq eu usaria, o que eu faria para resolver isso com ele? se der para explicar melhor, agradeço????

 

Quanto ao meu arquivo XML ele é gerado por um outro programa cuja a programação e nem a equipe eu tenho acesso, o usuário irá pegar esse arquivo xml e irá fazer um up-load do arquivo quando o mesmo fizer isso ele irá gravar na base, por isso não tenho muitas alternativas ele será automático para o usuário.

 

por isso que estou preocupado em acertar os codigos e não o que vai gerar, preciso que apenas salve no banco de forma certa.

 

é a primeira vez que trabalho com XML, por isso da dificuldade alem de tudo estou tendo que usar o sistema DomDocument que ja foi respondido neste forum.

 

entendeu qual a minha maior preocupação??

 

valeuuuuuu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom o que citei o notepad++ foi para o seguinte uso.

 

você fala no header que seu arquivo é utf-8 você encode suas variaveis que vem do banco de dados com utf-8 mais o seu arquivo pode estar em outro formato

 

utf8e.jpg

http://imageshack.us/f/638/utf8e.jpg/

caso buge a img use o link

o notepad++ te possibilita trocar a codificação do arquivo em si, isso me gerou grandes problemas no inicio até eu descobrir essa maravilhosa ferramenta, poucos programas que trabalhei tinha essa opção e de fato é de grande ajuda.

 

e sobre o XML já que vocês recebem o xml vocês tem um padrão para o cliente mandar é importante ter o CDATA para codificação dos dados recuperados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu, fiz o que você falou para fazer do notepad++, não deu certo

 

não banco de dados continua igual caracteres totalmente diferentes da acentuação correta, quanto ao arquivo em PHP que faz a leitura continua normal.

 

quanto ao CDATA não tenho como pedir para empresa mudar a codificação do programa, entendeu é uma empresa que desenvolveu um software, meu cliente usa ele, gera o arquivo e depois importo para o meu sistema web. so falta isso para fechar essa etapa.

 

so dá problema na gravação.

 

Bom Obrigado pela ajuda,

 

enquanto você pesquisavão dai eu continuava pesquisando daqui, por sorte achei um post em outro forum de um usuário que resolveu o problema ele postou simplismente o que eu precisava

 

<code>

//a linha a seguir transforma utf-8 para iso-8859-1

$descricaoAD = mb_convert_encoding($descricaoA,'ISO-8859-1',mb_detect_encoding($descricaoA,"UTF-8, ISO-8859-1, ASCII"));

//esta a seguir é apenas para mostrar os caracteres corretos caso o seu charset principal for utf-8

echo " - ".htmlentities($descricaoAD);

</code>

 

obrigado pela ajuda e fica ai o codigo para ajudar os demais.

 

[RESOLVIDO] Bom Obrigado pela ajuda,

 

enquanto você pesquisavão dai eu continuava pesquisando daqui, por sorte achei um post em outro forum de um usuário que resolveu o problema ele postou simplismente o que eu precisava

 

<code>

//a linha a seguir transforma utf-8 para iso-8859-1

$descricaoAD = mb_convert_encoding($descricaoA,'ISO-8859-1',mb_detect_encoding($descricaoA,"UTF-8, ISO-8859-1, ASCII"));

//esta a seguir é apenas para mostrar os caracteres corretos caso o seu charset principal for utf-8

echo " - ".htmlentities($descricaoAD);

</code>

 

obrigado pela ajuda e fica ai o codigo para ajudar os demais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.