Daniel Falcão escreveu:
> Olá,
> 
> Para este comando (select) funcionar, é necessário que o banco
> criado esteja como codificação LATIN1, por exemplo:
> 
> no shell do usuario postgres, utilize o comando:
> $ createdb nome_do_banco -E latin1
> 
> ou então, no pgAdmin 3, escolha a codificação LATIN1 no momento
> de criação do banco.
> 
> Por padrão, o Postgres cria banco de dados com codificação UTF8,
> que não é o recomendado para o nosso idioma português pt_BR
> por não oferecer suporte completo para palavras acentuadas e
> outros caracteres latinos.
> 

?!?!??!!??
O UTF-8 é uma implementação multibyte (1 a 4 bytes) do 
unicode que tem por objetivo representar *todos* os 
caracteres de uso comum.
O UTF-8 contém *todos* os caracteres acentuados, inclusive 
aqueles não utilizados na língua portuguesa.
Veja mais detalhes em:
http://en.wikipedia.org/wiki/Utf-8

O ISO-8859 utiliza 1 byte para representar um conjunto de 
caracteres mais comuns em determinadas línguas. Existem 
diversos destes conjuntos, cada um atendendo a uma língua 
(ou um conjunto de línguas similares), o Latin-1 ou 
ISO-8859-1 é um deles.
Veja:
http://en.wikipedia.org/wiki/ISO8859


> Respondendo a outra pergunta, para retornar apenas as tuplas
> que começam com o nome "daniel", faça o seguinte (note que
> retirei o % no inicio do parâmetro):
> 
> select * from tabela where to_ascii(nome) ilike to_ascii('daniel%');
> 
> consulte o manual do Postgres, existem várias outras formas
> de pesquisa bem interessantes...
> 


Quanto a escolha do conjunto de caracteres a utilizar 
(Latin-1, Latin-9, UTF-8, etc) veja o histórico da lista 
pois este assunto já foi objeto de discussão.

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a