Estava tentando responder a uma pergunta no orkut questionando porque o link dele não estava funcionando...
Pesquisei e não encontrei a resposta, resolvi tentar a solução idiota, pois achei uns links que funcionavam com acentos e outros que não...
Percebi que a diferença entre eles era o www.
Sim o www...
$tweet = "Frase com acento é foda!!! Mas é muito legal a programação... ä";E lembre-se de codificar em UTF-8 antes de enviar...
$tweet = ($tweet);
$tweet = utf8_encode($tweet);
$tweet = urlencode($tweet);
header("Location: http://twitter.com/?status=".$tweet); //Funciona
header("Location: http://www.twitter.com/?status=".$tweet); //Não funciona
Não sei exatamente a causa do bug... Creio que alguma configuração que desconheço no servidor do twitter...
O problema é que no servidor com www. os acentos ficam urlencodados the way they are "s%E7%E3o", já no sem www. ele decodifica para "são"...
Bug esquisito, espero que ajude quem estiver com esse problema com palavras acentuadas em seus links...
Detalhe, o problema também afeta hyperlinks (aquele <a href="http://www.twitter.com/?status=">...
Então preste atenção a este detalhe...
Isso claramente não afeta apenas o PHP, mas qualquer linguagem... Pois os links gerados não funcionam nos browsers também...
Segue links para você testar por você mesmo (os links não funcionam pra quem não esta logado):
- http://www.twitter.com/?status=Acentos%3A+%C3%A4%C3%A1%C3%A9+-+see%3F
- http://twitter.com/?status=Acentos%3A+%C3%A4%C3%A1%C3%A9+-+see%3F
Update: Entendi o bug... Ao acessar a url com www ele redireciona para a url sem o www, e neste redirect ele acaba sujando a mensagem...
Coisa de programador idiota que faz urlencode(urlencode($text))...
4 comentários:
Boa cara, já estava a quinzze min tentando descobrir o que eu estava fazendo de errado xD
Se você converter a url usando o utf8_encode do php resolve!
Esse problema era antigo, devem ter resolvido...
Alia, o utf8_decode não resolve se você pensar que o sistema deve aceitar todos os caracteres existentes na codificação do UTF-8...
Postar um comentário