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
