Problema com Java ISO-8859-1 UTF-8

Pessoal, estou com o seguinte problema.

Tenho uma tabela em um banco MySQL com codificação latin-1. Esse campo é um BLOB e contém palavrás como notificação, público etc, ou seja, palavras com acento na codificação ISO-8859-1.

Minha aplicação consulta essa tabela, lê a coluna que tem esses textos e gera uma mensagem gravando em outra tabela, com base nos textos lidos. O problema esta neste ponto, pois quando o Java lê essa coluna, esta convertendo para UTF-8, colocando ?? onde deveria ter acentos, ç etc.

O que fazer para corrigir isso.

Att,

Fred

Pega o conteúdo do blob como array de byte e use o overload do contrutor de String.

byte[] asdf = blob.getBytes(1, blob.length()); String qwert = new String(asdf, "Latin-1");

Fiz assim,

            byte[] bytes = string.getBytes(); //minha versão do jdk é 1.5 e não tem o método getBytes(int, int)
            String stringCodificada = new String(bytes, "ISO-8859-1");  //se eu colocar "Latin-1" é gerada uma UnsupportedEncodingException

E não funcionou…

Pessoal, parece ser bug do MySQL (http://bugs.mysql.com/bug.php?id=9039)

Converti a coluna de BLOB para TEXT e funcionou…

Obrigado pela atenção.

Mais informações…
http://osdir.com/ml/db.mysql.java/2006-01/msg00016.html

vixi, você tá pegando o conteudo do blob como string??
tipo… vc recupera do banco assim:

//popula o resultSet Blob blob = resultSet.getBlob(NOME_COLUNA); byte[] bytes = blob.getBytes(1L, blob.length()); String string = new String(bytes, "ISO-8859-1");
aqui roda de boas.