Oi Osvaldo, Obrigado pelas dicas. Vou ver se consigo implementar ainda hoje. Como disse, ainda são testes.
Bene Em 01/07/2010 19:53, Osvaldo Kussama escreveu: > Em 1 de julho de 2010 19:42, Osvaldo Kussama > <[email protected]> escreveu: >> Em 1 de julho de 2010 11:50, Benedito A. Cruz<[email protected]> escreveu: >>> Em 1/7/2010 11:43, Fabrízio de Royes Mello escreveu: >>> >>> Em 1 de julho de 2010 11:29, Benedito A. Cruz<[email protected]> escreveu: >>>> Porque o mundo não é perfeito... >>>> >>> Mesmo o mundo sendo *imperfeito* precisamos tentar nos aproximar da >>> *perfeição*... buscar sempre o melhor... e a colocação do Euler é com esse >>> pensamento... bom, filosofias a parte vamos ao que interessa... >>> >>> Penso que num mundo perfeito eu teria controle sobre todo o processo de >>> desenvolvimento, o que não é o caso. Infelizmente em muitos casos temos que >>> integrar coisas muito diferentes sobre as quais não temos controle na >>> implementação ou configuração. >>> >>> Essa questão de tu ter um cliente com o encoding LATIN [1] e o servidor com >>> UTF-8 [2] tende a ter problemas justamente porque existem diversos >>> caracteres UTF-8 não presentes em LATIN1, então é _natural_ que a conversão >>> não seja bem sucedida. >>> >>> OK. Eu só queria saber se seria possível tratar essa conversão mal sucedida >>> de algum modo. Pelo jeito, não dá. >>> >>> >>> Creio que suas alternativas são: >>> 1) Mudar o encoding do client para UTF-8 >>> >>> 2) Mudar o encoding do server para LATIN1 >>> >>> 3) Se 1) e 2) não são possíveis então vais ter que criar funções e/ou visões >>> separando o teu modelo físico em que o mesmo faça esse tratamento. >>> Mais alguém tem sugestões para o colega??? >>> >>> [1] http://en.wikipedia.org/wiki/ISO/IEC_8859-1 >>> [2] http://en.wikipedia.org/wiki/UTF-8 >>> -- >>> Fabrízio de Royes Mello >>> >>> Valeu Fabrizio, obrigado pela resposta. >>> >>> >>> Bene >>> >>> >>>>> Blog sobre TI: http://fabriziomello.blogspot.com >> >> Uma possível solução é você identificar no servidor os caracteres não >> passíveis de conversão UTF-8 -> LATIN1 e substituí-lo por, digamos, >> '?'. >> Veja uma expressão regular que identifica caracteres não-UTF-8: >> http://sniptools.com/databases/finding-non-utf8-values-in-postgresql >> não é o que você precisa mas pode indicar um caminho para a solução. >> Tente identificar a correspondência de todos os caracteres LATIN1 em >> UTF-8, creio que o utilitário iconv faça isso, e desenvolva uma >> expressão regular que capture os caracteres sem correspondência e use >> a função regexp_replace. >> >> Osvaldo >> > Complementando: > > existe a função convert(string bytea, src_encoding name, dest_encoding name): > http://www.postgresql.org/docs/current/interactive/functions-string.html > o resultado é um bytea e a conversão utf8_to_iso_8859_1 é uma das existentes. > Creio que combinando com a função convert_from(string bytea, > src_encoding name), cujo resultado é um text, você consiga resolver > seu problema. > > Osvaldo > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
