Bom dia, achei um bug muito engraçado no twitter hoje...
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... ä";
$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
E lembre-se de codificar em UTF-8 antes de enviar...
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):
Tenha medo, muito medo, :P
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))...