PostgreSQL Erro de conversão: UNICODE - Latin1

Estive obtendo a seguinte mensagem vinda do banco postgres quando eu tentava realizar um insert de um valor string que já me vinha formatado.


a mensagem:

ERROR: character 0xe2809c of encoding "UNICODE" has no equivalent in "LATIN1"


Solução:

Ex:





try {

byte[] y = conteudosHtml.getBytes("ISO-8859-1"); // ou UTF, etc
conteudosHtml = new String(y, "LATIN1"); // ou UTF, ISO, etc

} catch (UnsupportedEncodingException e) {
out.print("Erro convert1"+e.getMessage());
} catch (IOException e) {
out.print("Erro convert2"+e.getMessage());
}


Caso você se encontre numa situação mais crítica.. com caracteres que nao sejam ISO. UTF mas sim caracteres japoneses, koreanos, indianos e por aí vai ( SOMENTE CASO O CODIGO ACIMA NAO TE SIRVA), lá vai um exemplo de conversão BRAdesses chars:

conteudosHtml = conteudosHtml.replace((char) 0x93 , ' ' );


OBS: Note que o código char 0x93 corresponde ao caractere UNICODE 0xe2809c que ele estava reclamando, caso seja preciso, copio-vos uma lista de diversos caracteres UNICODE para receberem a mesma conversão e posteriormente fazer o replace como eu fiz:

OBS: onde '0xA2' => '0xC2A2' significa que 0xA2 é o char que representa o UNICODE 0xC2A2


'0x81' => '\'\'', '0x8A' => '\'\'', '0x8C' => '\'\'',
'0x8D' => '\'\'', '0x8E' => '\'\'', '0x8F' => '\'\'',
'0x90' => '\'\'', '0x9A' => '\'\'', '0x9C' => '\'\'',
'0x9D' => '\'\'', '0x9E' => '\'\'', '0x9F' => '\'\'',
'0xCA' => '\'\'', '0xD9' => '\'\'', '0xDA' => '\'\'',
'0xDB' => '\'\'', '0xDC' => '\'\'', '0xDD' => '\'\'',
'0xDE' => '\'\'', '0xDF' => '\'\'', '0xFB' => '\'\'',
'0xFC' => '\'\'', '0xFF' => '\'\'', '0xC2' => '0xFF',
'0x80' => '0xFC', '0xE2' => '0xFB', '0xA0' => '0xC2A0',
'0xA1' => '0xC2A1', '0xA2' => '0xC2A2', '0xA3' => '0xC2A3',
'0xA5' => '0xC2A5', '0xA6' => '0xC2A6', '0xA7' => '0xC2A7',
'0xA8' => '0xC2A8', '0xA9' => '0xC2A9', '0xAB' => '0xC2AB',
'0xAC' => '0xC2AC', '0xAD' => '0xC2AD', '0xAE' => '0xC2AE',
'0xAF' => '0xC2AF', '0xB0' => '0xC2B0', '0xB1' => '0xC2B1',
'0xB2' => '0xC2B2', '0xB3' => '0xC2B3', '0xB4' => '0xC2B4',
'0xB5' => '0xC2B5', '0xB6' => '0xC2B6', '0xB7' => '0xC2B7',
'0xB8' => '0xC2B8', '0xB9' => '0xC2B9', '0xBB' => '0xC2BB',
'0xBC' => '0xC2BC', '0xBD' => '0xC2BD', '0xBE' => '0xC2BE',
'0xBF' => '0xC2BF', '0xD7' => '0xD7B3', '0xD1' => '0xD781',
'0xD4' => '0xD7B0', '0xD5' => '0xD7B1', '0xD6' => '0xD7B2',
'0xE0' => '0xD790', '0xEA' => '0xD79A', '0xEC' => '0xD79C',
'0xED' => '0xD79D', '0xEE' => '0xD79E', '0xEF' => '0xD79F',
'0xF0' => '0xD7A0', '0xF1' => '0xD7A1', '0xF2' => '0xD7A2',
'0xF3' => '0xD7A3', '0xF5' => '0xD7A5', '0xF6' => '0xD7A6',
'0xF7' => '0xD7A7', '0xF8' => '0xD7A8', '0xF9' => '0xD7A9',
'0x82' => '0xE2809A', '0x84' => '0xE2809E', '0x85' => '0xE280A6',
'0x86' => '0xE280A0', '0x87' => '0xE280A1', '0x89' => '0xE280B0',
'0x8B' => '0xE280B9', '0x93' => '0xE2809C', '0x94' => '0xE2809D',
'0x95' => '0xE280A2', '0x97' => '0xE28094', '0x99' => '0xE284A2',
'0xC0' => '0xD6B0', '0xC1' => '0xD6B1', '0xC3' => '0xD6B3',
'0xC4' => '0xD6B4', '0xC5' => '0xD6B5', '0xC6' => '0xD6B6',
'0xC7' => '0xD6B7', '0xC8' => '0xD6B8', '0xC9' => '0xD6B9',
'0xCB' => '0xD6BB', '0xCC' => '0xD6BC', '0xCD' => '0xD6BD',
'0xCE' => '0xD6BE', '0xCF' => '0xD6BF', '0xD0' => '0xD780',
'0xD2' => '0xD782', '0xE3' => '0xD793', '0xE4' => '0xD794',
'0xE5' => '0xD795', '0xE7' => '0xD797', '0xE9' => '0xD799',
'0xFD' => '0xE2808E', '0xFE' => '0xE2808F', '0x92' => '0xE28099',
'0x83' => '0xC692', '0xD3' => '0xD783', '0x88' => '0xCB86',
'0x98' => '0xCB9C', '0x91' => '0xE28098', '0x96' => '0xE28093',
'0xBA' => '0xC3B7', '0x9B' => '0xE280BA', '0xAA' => '0xC397',
'0xA4' => '0xE282AA', '0xE1' => '0xD791', '0xE6' => '0xD796',
'0xE8' => '0xD798', '0xEB' => '0xD79B', '0xF4' => '0xD7A4',
'0xFA' => '0xD7AA', '0xFF' => '0xD6B2', '0xFC' => '0xE282AC',
'0xFB' => '0xD792',
),
'windows-1253' => array(
'0x81' => "''", '0x88' => "''", '0x8A' => "''",
'0x8C' => "''", '0x8D' => "''", '0x8E' => "''",
'0x8F' => "''", '0x90' => "''", '0x98' => "''",
'0x9A' => "''", '0x9C' => "''", '0x9D' => "''",
'0x9E' => "''", '0x9F' => "''", '0xAA' => "''",
'0xD2' => "''", '0xFF' => "''", '0xCE' => '0xCE9E',
'0xB8' => '0xCE88', '0xBA' => '0xCE8A', '0xBC' => '0xCE8C',
'0xBE' => '0xCE8E', '0xBF' => '0xCE8F', '0xC0' => '0xCE90',
'0xC8' => '0xCE98', '0xCA' => '0xCE9A', '0xCC' => '0xCE9C',
'0xCD' => '0xCE9D', '0xCF' => '0xCE9F', '0xDA' => '0xCEAA',
'0xE8' => '0xCEB8', '0xEA' => '0xCEBA', '0xEC' => '0xCEBC',
'0xEE' => '0xCEBE', '0xEF' => '0xCEBF', '0xC2' => '0xFF',
'0xBD' => '0xC2BD', '0xED' => '0xCEBD', '0xB2' => '0xC2B2',
'0xA0' => '0xC2A0', '0xA3' => '0xC2A3', '0xA4' => '0xC2A4',
'0xA5' => '0xC2A5', '0xA6' => '0xC2A6', '0xA7' => '0xC2A7',
'0xA8' => '0xC2A8', '0xA9' => '0xC2A9', '0xAB' => '0xC2AB',
'0xAC' => '0xC2AC', '0xAD' => '0xC2AD', '0xAE' => '0xC2AE',
'0xB0' => '0xC2B0', '0xB1' => '0xC2B1', '0xB3' => '0xC2B3',
'0xB5' => '0xC2B5', '0xB6' => '0xC2B6', '0xB7' => '0xC2B7',
'0xBB' => '0xC2BB', '0xE2' => '0xCEB2', '0x80' => '0xD2',
'0x82' => '0xE2809A', '0x84' => '0xE2809E', '0x85' => '0xE280A6',
'0x86' => '0xE280A0', '0xA1' => '0xCE85', '0xA2' => '0xCE86',
'0x87' => '0xE280A1', '0x89' => '0xE280B0', '0xB9' => '0xCE89',
'0x8B' => '0xE280B9', '0x91' => '0xE28098', '0x99' => '0xE284A2',
'0x92' => '0xE28099', '0x93' => '0xE2809C', '0x94' => '0xE2809D',
'0x95' => '0xE280A2', '0x96' => '0xE28093', '0x97' => '0xE28094',
'0x9B' => '0xE280BA', '0xAF' => '0xE28095', '0xB4' => '0xCE84',
'0xC1' => '0xCE91', '0xC3' => '0xCE93', '0xC4' => '0xCE94',
'0xC5' => '0xCE95', '0xC6' => '0xCE96', '0x83' => '0xC692',
'0xC7' => '0xCE97', '0xC9' => '0xCE99', '0xCB' => '0xCE9B',
'0xD0' => '0xCEA0', '0xD1' => '0xCEA1', '0xD3' => '0xCEA3',
'0xD4' => '0xCEA4', '0xD5' => '0xCEA5', '0xD6' => '0xCEA6',
'0xD7' => '0xCEA7', '0xD8' => '0xCEA8', '0xD9' => '0xCEA9',
'0xDB' => '0xCEAB', '0xDC' => '0xCEAC', '0xDD' => '0xCEAD',
'0xDE' => '0xCEAE', '0xDF' => '0xCEAF', '0xE0' => '0xCEB0',
'0xE1' => '0xCEB1', '0xE3' => '0xCEB3', '0xE4' => '0xCEB4',
'0xE5' => '0xCEB5', '0xE6' => '0xCEB6', '0xE7' => '0xCEB7',
'0xE9' => '0xCEB9', '0xEB' => '0xCEBB', '0xF0' => '0xCF80',
'0xF1' => '0xCF81', '0xF2' => '0xCF82', '0xF3' => '0xCF83',
'0xF4' => '0xCF84', '0xF5' => '0xCF85', '0xF6' => '0xCF86',
'0xF7' => '0xCF87', '0xF8' => '0xCF88', '0xF9' => '0xCF89',
'0xFA' => '0xCF8A', '0xFB' => '0xCF8B', '0xFC' => '0xCF8C',
'0xFD' => '0xCF8D', '0xFE' => '0xCF8E', '0xFF' => '0xCE92',
'0xD2' => '0xE282AC',




Então ta aí a morta...

se virem com essas informações, pois hoje tive de me virar bastante.

Abraço

Nenhum comentário: