Lambança
Publicado em Developer
Se alguém visitou o blog entre ontem e hoje, deve ter visto mensagens mutcho locas ou nem viu nada. O motivo foi que a Dreamhost atualizou a versão do Rails para a 1.2.3 e sabe-se lá por que (se alguém souber deixe um comentário por favor!) essa versão (levando em conta todos os gems também) não gosta de caracteres ISO-8859-1 em lugar algum, o que levou a vários problemas.
O Apache da Dreamhost roda aparentemente (agora já não sei de mais nada e estou de cabeça quente) com o ISO-8859-1, o que nunca me deu problema algum. Mas, fora a parte da apresentação que se recusava a ficar em ISO-8859-1 e apresentava uns caracteres estranhos na tela, o que foi resolvido com um before_filter ajustando os headers (deêm uma olhada de dicas sobre isso aqui), os modelos começaram a dar problemas, por causa das mensagens de validação!!!
Aqui no blog mesmo, os comentários tem algumas mensagens engraçadinhas para fazer validação, e um simples "dã" ferrou com a aplicação toda. Sabe Deus o que mexeram lá, estava sendo interpretado ou como um final de linha ou como algum caracter maluco e ferrando com todo o resto. Parece que tem a ver com alguma coisa do ActiveSupport, mas não estou com muito tempo para debugar o bicho agora não, e preferi fazer uma solução mais rápida. Tirei toda a acentuação dos modelos e controladores, trocando o "dã", por exemplo, para "dã", e parece que voltou tudo ao normal.
Mas eu fico me perguntando que diabos que aprontaram ali para passar a apresentar esse comportamento. Tá certo que existe um certo concenso no UTF-8, mas se funcionava bem antes, o que será que aconteceu agora? De qualquer maneira, vou ficar mais esperto com isso.
Tags:
Comentários
Comentários fechados.
Só para desencargo de consciência vou inserir um comentário para ver se está tudo ok. Tem os testes mas depois desse trupé todo quero ver para crer. ;-)
TaQ, deve ser algo contagioso (http://raelcunha.com/packages/blog/pages/index.tpl.php?post=111), e olha que o meu tá em PHP.
Não sei, algumas vezes acho que o povo de hosting é um pouco relaxado... pq não pegam um servidor em separado, copiam tudo que está hospedado, e testam com as versões novas dos softwares (ou ao menos pedem para que quem esteja interessado em migrar teste)?
Hehe chefinho, nas minhas duas contas aqui na dreamhost as aplicações pararam de funcionar, tomei um baita susto, afinal ainda sou novato em rails.
E alias, as duas ainda estão com a acentuação zoneada, isso logo depois que por causa da incompatibilidade com o UTF-8 aqui, eu atualizei tudo nas minhas maquinas para ISO-8859-1 só pra num ter problema com a dreamhost :(, agora acho que vou ter que fazer o inverso de novo.
Depois troco uma idéia com voce ai ...
Abraço, T+
Alfredo
Eles avisaram no blog que iriam atualizar o Rails e recomendaram que todos fizessem o freeze de versão, eu fiz aqui e aparentemente tá tudo normal em uma aplicação que eu rodo :)
Rafael,
É, eles avisaram dia 15, mas não pensei que fosse dar uma zica justamente nas gems do Rails (como desconfio desse problema de acentos no ActiveSupport), e sim em alguma outra "extra" instalada. Como não estou usando mais nenhuma outra "extra", estava até sossegado, mas agora vou montar um ambientezinho de testes para testar até essas "padrões" quando tiver alguma mudança. Cuidado na hora do unfreeze. ;-)
Bom, essa história de UTF e ISO é sempre complicada... Até onde eu sei existe (ou existia) um problema com o AJAX e o Rails tb... Acho que não está tudo muito certo ainda, então eles devem estar arrumando (espero).
Sobre a Dreamhost, sou cliente a pouco tempo e nunca tive problemas, mas te garanto que não pode ser pior que a brasileira maxihost. Só pra você ter noção eles rodam o Rails como development e não oferecem nem ssh (como você usa rake? sei lá...), e o pior é que é mais cara que a DreamHost, por isso que migrei meu blog.
Bom, boa sorte com os caractes acetuados ainda... Eu ainda estou complexado porque meu linux fazia acento agudo no c e não ç até um tmepo atrás...
Bom, eu não consegui ver esse problema, talvez eles ainda nao tenham atualizado a minha maquina na dream host, o problema da codifiçao entre ajax e um server side é que vc precisa codificar para enviar, a não ser que vc envie um cabecalho de codificacao primeiro, mas em geral uso utf8_encode no php para enviar meus ajax:
ex. na dreamhost phanatic.site4.com.br ( em desenvolvimento mas todo css e ajax ) ainda nao deu pal hehehe e espero que não de ja que pelo visto ta sendo em cascata o efeito.
Pessoal. Eu tive exatamente o mesmo erro que vocês.
A minha solução foi salvar novamente os arquivos que estavam com problema no encoding UTF8. Aí resolveu o problema do modelo e também das mensagem mais "explícitas" em código.