BJ_ 0 Denunciar post Postado Novembro 3, 2006 Estou com problemas com acentuação e cedilha, mas somente quando busco um dado do BD e o utilizo como link. Se dou um echo nesse dado com acento/cedilha ele aparece normalmente, mas se o utilizo como link <a href='$dado'> ao passar o mouse sobre o link ele está correto, mas clicando sobre ele mostra outros caracteres. Retorna algo assim: BarcaXChelsea--16h%C3%A1sssda.txt O certo e assim está no BD: BarcaXChelsea--16hásssda.txt Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Guilherme Rambo 4 Denunciar post Postado Novembro 3, 2006 Isso é a encodificação da url, ele naum vai passar com o acento propriamente dito na url, mas sim ele encodificado. Compartilhar este post Link para o post Compartilhar em outros sites
BJ_ 0 Denunciar post Postado Novembro 3, 2006 Isso é a encodificação da url, ele naum vai passar com o acento propriamente dito na url, mas sim ele encodificado.Realmente é isso que acontece.A unica solução seria remover os acentos antes de enviar para o BD?Não queria fazer isso pois no caso é um arquivo que está sendo enviado. Terei que renomear o arquivo antes de enviar para o servidor e pegar esse novo nome. Ou o mais "porco", proibir o usuário de enviar arquivos acentuados.Não há uma função que possa corrigir isso?Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Guilherme Rambo 4 Denunciar post Postado Novembro 3, 2006 Existem as funções do php urldecode() e urlencode(), que trabalham com a codificação da url: http://www.php.net/manual/pt_BR/function.urldecode.php http://www.php.net/manual/pt_BR/function.urlencode.php Compartilhar este post Link para o post Compartilhar em outros sites
BJ_ 0 Denunciar post Postado Novembro 3, 2006 Sim mas essas funções não resolvem o problema pois o arquivo está com acento no servidor, sendo assim, ele não encontra o arquivo. Tanto encodando como decodificando não funciona. Quando decodifico (decode) não ocorre nada pois o link já está mostrado corretamente, o estranho é que quando codifico ele coloco os caracteres no lugar do acento porém quando clico nele ele me retorna erro. Encode: BarcaXChelsea--16h%E1sssda.txtDecode:BarcaXChelsea--16h%C3%A1sssda.txt Aqui o link fica com acento, como antes, mas ao clicar ele retorna isso. Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Guilherme Rambo 4 Denunciar post Postado Novembro 3, 2006 não devia estar acontecendo isso, mas, ja que está, use uma função que remova os caracteres especiais dos arquivos antes de fazer o upload, da uma pesquisada no forum que ja vi algo assim por aki http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
BJ_ 0 Denunciar post Postado Novembro 3, 2006 Tb não entendo pq está acontecendo isso. Bom tenho aqui uma função vou posta-la caso alguém precise. Valeu a força! Abraços! 1: <?php 2: 3: // Função para tirar os acentos de uma string! pode ser adaptadas para outras coisas 4: 5: function RemoveAcentos($Msg) 6: { 7: $a = array( 8: '/[ÂÀÁÄÃ]/'=>'A', 9: '/[âãàáä]/'=>'a',10: '/[ÊÈÉË]/'=>'E',11: '/[êèéë]/'=>'e',12: '/[ÎÍÌÏ]/'=>'I',13: '/[îíìï]/'=>'i',14: '/[ÔÕÒÓÖ]/'=>'O',15: '/[ôõòóö]/'=>'o',16: '/[ÛÙÚÜ]/'=>'U',17: '/[ûúùü]/'=>'u',18: '/ç/'=>'c',19: '/Ç/'=> 'C');20: // Tira o acento pela chave do array 21: return preg_replace(array_keys($a), array_values($a), $Msg);22: }23: 24: // como usar25: echo RemoveAcentos("Amanhã não irei caçar")26: ?> Compartilhar este post Link para o post Compartilhar em outros sites