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

Responder a