Acentuação Postgres / Web para SQLite / Desktop

1 resposta
D

Fala galera,

criei uma aplicação em que a pessoa é cadastrada em um site em JSP e esta informação é gravada no Postgres. Palavras acentuadas são gravadas no banco assim “João” / João, e no site mostra blz, pois o html interpreta que é uma palavra acentuada e tals.

Criei um WebService para enviar as informações para um banco SQLite, que irá ser usado por uma aplicação Desktop em java swing. O SQLite recebe a informação tal e qual estava no Postgres “João”, só que o swing não interpreta a acentuação das palavras.

O Postgres, o SQLite e o charset da página estão configurados para UTF-8.

Existe alguma maneira do Swing interpretar a acentuação???Como??

Se não??? Que comando é necessário eu incluir na minha transação do WebService para interpretar a informação do Postgres e enviar a palavra acentuada mesmo. EX.: João E NÂO João???

Valeu a todos pela atenção.

1 Resposta

D

fala galera,

depois de procurar pra caramba e testar várias coisas, consegui encontrar a solução.
Como eu acredito que o conhecimento deva ser disseminado entre todos,,aí vai então!!!!

No momento em que a minha solicitação vinda do Desktop vai ser respondida pelo WebService eu coloquei um método para que interpretasse a acentuação do conteúdo que vem do meu banco na Web e enviasse as palavras já acentuada para o Banco em SQLite no Desktop, assim quando a aplicação consultar o banco a informação já vem correta.

Se alguém possuir algum outro código ou maneira mais simples, posta aeeehhh!!

public String FormataAcentuacao(String txtInicial) {
  		 
        Charset charsetOrigem = Charset.forName("windows-1252");  
        CharsetEncoder encoderOrigem = charsetOrigem.newEncoder();
        Charset charsetDestino = Charset.forName("UTF-8");
        CharsetDecoder decoderDestino = charsetDestino.newDecoder();
        
        String txtFinal = "";

        try {
            ByteBuffer bbuf = encoderOrigem.encode(CharBuffer.wrap( txtInicial ));
            CharBuffer cbuf = decoderDestino.decode(bbuf);
            txtFinal = cbuf.toString();
        } catch (CharacterCodingException e) {
            e.printStackTrace();
        }

        return txtFinal;
    }

Flwwwwwws,
Dkauf

Criado 14 de outubro de 2010
Ultima resposta 18 de out. de 2010
Respostas 1
Participantes 1