PGError: ERRO: sequência de bytes é inválida para codificação "UTF8": 0xe36f20
Isso acontece quando tento colocar "São Paulo" no banco, que alias é postgreSQL, ou seja, todo caracter"especial", é rejeitado.
Já corria atras de muito tutorial na net, mas não acho solução.Encoding na database.yml,etc, etc...
Alguém já enfrentou esse erro?
[]'s
Daniel
--
Você está recebendo esta mensagem porque se inscreveu no grupo "rails-br" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para rail...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para rails-br+u...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/rails-br?hl=pt-BR.
--
Você está recebendo esta mensagem porque se inscreveu no grupo "rails-br" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para rail...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para rails-br+u...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/rails-br?hl=pt-BR.
encoding:utf-8
troque porencoding:utf8
Não que seja esse o problema... mas no meu aqui está como essa opção que estou passando
O problema é que sua aplicação está enviando um texto em iso-8859-1
para o banco este espera receber um texto em utf-8.
E o codigo enviado (0xe36f20) é um utf-8 inválido.
o e3 correponde ao 'ã' ; 6f ao 'o' e 20 ao ' '.
Em utf-8 deveria ser (0xc3a36f20), onde
o c3a3 corresponde ao 'ã', 6f ao 'o' e 20 ao ' '.
Por sua aplicação está enviando em iso-5589-1 eu não sei.
Ou ela está recebendo desde modo do navegador, ou tem algum código
fazendo a conversão no meio do caminho.
Você já testou usando fazer entrada usando o script/console? Se
funcionar então deve ser o navegador que está mandando na codificação
errada. Se continuar dando erro deve ser a aplicação.
Conhecimento é controle!!!
--
Hugo A. G. V. Rosa
hugo...@gmail.com
hugo...@yahoo.com.br
--
Com relação a solução encontrada, você está convertendo os textos para
base64 (que usa apenas o começo da tabela ASCII) para armazenar no
banco.
Outro teste que você pode fazer é escrever uma página que imprima o
resultado deste código:
"São Paulo".each_byte { |a| print a.to_s(16)}
O resultado esperado se for utf-8 é: 53c3a36f205061756c6f
Se for ISO-8859-1 o resultado é: 53e36f205061756c6f
Com isso você pode ficar sabendo qual a codificação que está sendo usada.
Uma questão, quando você salva diretamente no banco usando o psql, ao
recuperar o dado através da aplicação ele é exibido corretamente? ou
sai algo como "São Paulo"
--
Que bom... boa programação...
Conhecimento é controle!!!
--
Hugo A. G. V. Rosa
hugo...@gmail.com
hugo...@yahoo.com.br
2010/1/28 Daniel Shimoyama <shimoyam...@gmail.com>:
Em 28 de janeiro de 2010 07:46, Shairon Toledo
<shairon...@gmail.com> escreveu:
--
--
Nabucodonosor Coutinho
vc pode ter banco em utf-8 e views em iso-8859-1 nao faz diferenca
o que acontece é que muita gente cria um arquivo por exemplo no gedit,
esse arquivo por padrão é salvo em utf-8, e a pessoal informa nos
headers da view que a saida é isso, o resultado disso com certeza será
um monte de caracteres estranhos
mas se o encoding no header informar o real encoding do arquivo, isso ta ok
em seguida o database.yml tem que informar o encoding que ta vindo das
views, assim o postgresql consegue converter normalmente
ex:
banco : utf-8
paginas: iso-8859-1
header da pagina: iso-8859-1
database.yml deve informar encoding iso-8859-1
porque é o encoding do que está vindo da view e que vai para o banco
chegando no postgresql ele vai saber converter para urf-8
--
--
Nabucodonosor Coutinho