Erro - encoding "UTF8" has no equivalent in "LATIN1"

3 respostas
L

Amigos,
Estou com um problema em produção que não tenho mais idéia de como resolve-lo, inclusive já achei itens no forum que infelizmente não solucionaram meu problema que resulta na seguinte mensagem de erro:

org.postgresql.util.PSQLException: ERROR: character 0xefbfbd of encoding “UTF8” has no equivalent in “LATIN1”

Detalhe, esta aplicação esta funcionando em dois servidores, ambos com linux hospedados na plugin. No primeiro servidor esta instalado o tomcat e o banco de dados, e neste caso não ocorre o problema, já no segundo servidor, esta hospedado somente a aplicação apontando para um outro banco de produção, e as aplicações que estão hospedadas (neste servidor ocorre o problema). Outro fato curioso é que quando pego esta mesma aplicação e coloco a rodar na minha máquina apontando para o banco de produção o problema não acontece.
Devido a isto, acredito que possa ser alguma coisa de configuração no server 02, pois já eliminei a hipose de banco(apontei para um banco que funciona perfeitamente e também não funciona).

Por favor, quem tiver alguma dica ou já passou por algo parecido e poder ajudar serei grato.

Abraço!

3 Respostas

T

Esse caracter (UTF-8 0xef bf bd ) dá a impressão de ser um BOM (ou seja, um “byte order mark”), que aparece no início de arquivos-texto codificados em UTF-8 indicando que o arquivo foi codificado em UTF-8 e deve ser desprezado na hora de gravar no banco. Se for isso, é necessário pegar todos os campos que estão desse jeito, com esse BOM (que é mais “mau” que “bom”), e remover esse caracter usando alguma query.

EDIT - Conferi um pouco melhor e vi que o caracter para BOM é EF BB BF, não EF BF BD. Deve ser ainda alguma outra coisa.

L

Pessoa, o problema foi resolvido. Estava faltando configurar o seguinte parâmetro no servidor em produção:

LANG=en_US.iso885915
LC_ALL=en_US.iso885915

ou poderia ser tambem no JAVA_OPTS incluindo “-Dfile.encoding=ISO-8859-1”

L

leoduval:
Pessoa, o problema foi resolvido. Estava faltando configurar o seguinte parâmetro no servidor em produção:

LANG=en_US.iso885915
LC_ALL=en_US.iso885915

ou poderia ser tambem no JAVA_OPTS incluindo “-Dfile.encoding=ISO-8859-1”

Pessoal não tem outra mandeira de fazer isso? Eu tive esse mesmo problema no entanto não poderei mexer nos parâmetro do servidor porque existem outras aplicações neste servidor

Criado 15 de dezembro de 2008
Ultima resposta 19 de jan. de 2010
Respostas 3
Participantes 3