> > > Date: Wed, 20 Feb 2008 17:33:48 -0300 > > From: Euler Taveira de Oliveira <[EMAIL PROTECTED]> > > Subject: Re: [pgbr-geral] Utilizando initcap() com campos acentuados > > To: Comunidade PostgreSQL Brasileira > > <[email protected]> > > Message-ID: <[EMAIL PROTECTED]> > > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > > > César wrote: > > > > > os campos que possuem acentos são simplesmente apagados, deixando uma > > > string vazia como resultado. Achei estranho isto, pois na maioria dos > > > casos que pesquisei, o que ocorria era passar a maiúscula o caracter > > > posterios a letra acentuada. Mas no meu caso não, o campo foi > > > simplesmente apagado. > > > > > Isso parece-me algum problema com sua codificação de caracteres. Sugiro > > que verifique se o seu meio de entrada (aka terminal ou qualquer outro > > aplicativo) está com a mesma codificação de caracteres emitida pelo > > client_encoding. > > > > > > template1=# show client_encoding; > > client_encoding > > ----------------- > > UTF8 > > (1 registro) > > > > template1=# \l > > Lista dos bancos de dados > > Nome | Dono | Codificação > > -----------+-------+------------- > > postgres | euler | UTF8 > > template0 | euler | UTF8 > > template1 | euler | UTF8 > > (3 registros) > > > > template1=# create table foo (a int, b varchar(10)); > > CREATE TABLE > > template1=# insert into foo values(1, 'ícaro'), (2, 'ábaco'); > > INSERT 0 2 > > template1=# select b,initcap(b) from foo; > > b | initcap > > -------+--------- > > ícaro | Ícaro > > ábaco | Ábaco > > (2 registros) > > > > > > -- > > Euler Taveira de Oliveira > > http://www.timbira.com/ > > > > Caro Euler, o procedimento acima retornou: > > museu=# show client_encoding; > client_encoding > ----------------- > UTF8 > (1 row) > > museu=# \l > List of databases > Name | Owner | Encoding > --------------+----------+---------- > museu | root | UTF8 > postgres | postgres | LATIN1 > template0 | postgres | LATIN1 > template1 | postgres | LATIN1 > teste | postgres | LATIN1 > (5 rows) > > museu=# create table foo (a int, b varchar(10)); > CREATE TABLE > museu=# insert into foo values(1, 'ícaro'), (2, 'ábaco'); > INSERT 0 2 > museu=# select b,initcap(b) from foo; > b | initcap > -------+--------- > ícaro | íCaro > ábaco | áBaco > (2 rows) > > Grato > > César > -------------- Próxima Parte ---------- > Um anexo em HTML foi limpo... > URL: > http://listas.postgresql.org.br/pipermail/pgbr-geral/attachments/20080220/ca0eb0c0/attachment-0001.htm > Aha... acho que sei o que está acontecendo. A sua versão é <= 8.2, > certo? É que você executou o initdb com --encoding latin1 e criou uma > base utf8. Na versão 8.3, isso retornaria um erro. Você tem duas opções > (i) criar o banco de dados museu com encoding latin1 (ii) executar o > initdb com --encoding utf8. > > template1=# select version(); > version > ------------------------------------------------------------------------- > PostgreSQL 8.3RC2 on i686-pc-linux-gnu, compiled by GCC gcc (GCC) 4.1.2 > (1 registro) > > Tempo: 1,824 ms > template1=# \l > Lista dos bancos de dados > Nome | Dono | Codificação > ------------+-------+------------- > euler | euler | LATIN1 > postgres | euler | LATIN1 > regression | euler | SQL_ASCII > template0 | euler | LATIN1 > template1 | euler | LATIN1 > (5 registros) > > template1=# create database foo encoding 'utf-8'; > ERRO: codificação UTF8 não corresponde a configuração regional do > servidor pt_BR > DETALHE: A definição de LC_TYPE do servidor requer codificação LATIN1. > COMANDO: create database foo encoding 'utf-8'; > ERRO: codificação UTF8 não corresponde a configuração regional do > servidor pt_BR > DETALHE: A definição de LC_TYPE do servidor requer codificação LATIN1. > > > -- > Euler Taveira de Oliveira > http://www.timbira.com/ > > Euler, realmente resolveu meu problema! A todos grato pela atenção!
Abraços César
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
