Silfar Goulart de Castro escreveu:
> E como vou saber se o caracter está ou não dentro do enconding.
> 
> Em Seg, 2008-03-17 às 14:51 -0300, Osvaldo Rosario Kussama escreveu:
>> Silfar Goulart de Castro escreveu:
>>> Não posso mudar o banco, o cliente é windows, e uma aplicação feita em
>>> delphi, mas até o pgadmin3 do linux tem problema.
>>>
>>> Já vi exemplos usando convert(), mas nenhuma funcionou aqui devo estar
>>> fazendo alguma coisa errada.
>>>
<corte>
>>
>> Qual o resultado de:
>> SELECT ID_TITULAR , NM_TITULAR, SIGLA_SOC, TP_PESSOA
>> FROM TITULAR T
>> WHERE (to_ascii(convert(t.nm_titular, 'LATIN1'), 'LATIN1') = 
>> to_ascii(convert(:par, 'LATIN1'), 'LATIN1'))
>> ORDER BY NM_TITULAR;
>>
>> Poderá apresentar erro se, por acaso, seu campo contiver caracteres 
>> existentes no UTF-8 mas não no Latin1. Neste caso creio que o melhor 
>> seja utilizar a função translate e especificar como converter cada um 
>> dos caracteres acentuados.
>>
>> Lembre-se que a função to_ascii funciona apenas para os encodings 
>> LATIN1, LATIN2, LATIN9 e WIN1250.
>>


Você deve ter algum controle sobre o que é inserido em seu banco de 
dados. Em quais línguas estão os textos inseridos?

Veja a tabela "Comparison of the various parts of ISO 8859":
http://en.wikipedia.org/wiki/ISO8859

http://en.wikipedia.org/wiki/Windows-1250

Lembre-se de que em algumas línguas pode não ser simples fazer o 
mapeamento: caracter acentuado -> caracter não acentuado.

Osvaldo
PS. Não deixe de ler este artigo:
http://local.joelonsoftware.com/mediawiki/index.php/O_M%C3%ADnimo_Absoluto_Que_Todo_Desenvolvedor_de_Software_Absolutamente%2C_Positivamente_Precisa_Saber_Sobre_Unicode_e_Conjuntos_de_Caracteres_%28Sem_Desculpas%21%29
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a