Re: [pgbr-geral] problema com acentos no UTF8

2009-11-12 Por tôpico Leandro DUTRA
2009/11/12 Osvaldo Kussama :
> 2009/10/29 Leandro DUTRA :
>> Exato.  A idéia é que existe uma decomposição ‘canônica’ para cada
>> caracter com sinal diacrítico e, portanto, sabendo‐se diferenciar o
>> que é caracter do que é sinal diacrítico, basta remover estes últimos.
>
> Parece que Oleg Bartunov já tem a função unaccent nestes moldes. Veja
> esta thread:
> http://archives.postgresql.org/pgsql-hackers/2009-07/thrd5.php#00819

Interessante, os comentários dele parecem indicar que pode haver algo
faltando no padrão Unicode.


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3854 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
Sent from Sao Paulo, SP, Brazil
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-11-12 Por tôpico Osvaldo Kussama
2009/10/29 Leandro DUTRA :
> 2009/10/29 Osvaldo Kussama :
>> O que achei interessante é que a decomposição utilizada foi definida
>> pelo próprio consórcio Unicode e dessa forma, creio eu, não existem
>> "chutes" sobre os aspectos de acentuação considerados anteriormente
>> nesta thread.
>
> Exato.  A idéia é que existe uma decomposição ‘canônica’ para cada
> caracter com sinal diacrítico e, portanto, sabendo‐se diferenciar o
> que é caracter do que é sinal diacrítico, basta remover estes últimos.
>


Leandro:

Voltando ao assunto.

Parece que Oleg Bartunov já tem a função unaccent nestes moldes. Veja
esta thread:
http://archives.postgresql.org/pgsql-hackers/2009-07/thrd5.php#00819

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-29 Por tôpico Leandro DUTRA
2009/10/29 Osvaldo Kussama :
> O que achei interessante é que a decomposição utilizada foi definida
> pelo próprio consórcio Unicode e dessa forma, creio eu, não existem
> "chutes" sobre os aspectos de acentuação considerados anteriormente
> nesta thread.

Exato.  A idéia é que existe uma decomposição ‘canônica’ para cada
caracter com sinal diacrítico e, portanto, sabendo‐se diferenciar o
que é caracter do que é sinal diacrítico, basta remover estes últimos.


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3854 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
Sent from Sao Paulo, SP, Brazil
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-29 Por tôpico Tarcísio Sassara
É possível descobrir se uma palavra possui acentos usando uma expressão regular.

-- "Tarcísio" possui caracteres diferentes de [a-z 0-9]?
select 'Tarcísio' !~* '^([a-z 0-9])*$'
Retorna verdadeiro. A palavra possui um "i" com acento.

Comecei com uma função usando o translate como foi passado na lista só
que antes de retornar a string, passo pela ER que verifica o
resultado. Se o retorno for "true" gero uma exception.
Descubro manualmente o caracter que causou a falha e assim posso
ajustar a função para transformar este novo caracter.

CREATE OR REPLACE FUNCTION
padroniza(palavra text) RETURNS text AS $_$

DECLARE
  _palavra text;
BEGIN
  _palavra = translate(palavra,
'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ"!...@#$%¨&*()-_=+´`{[^~}]|¹²³£¢¬ªº°<>:?,.;/',
'aiiioAIIIOcC');

  IF _palavra !~* '^([a-z 0-9])*$' THEN
RAISE EXCEPTION 'a palavra "%" possui caracteres estranhos', _palavra;
  END IF;

  RETURN _palavra;
END;
$_$
LANGUAGE 'plpgsql' IMMUTABLE;

-- 
Tarcisio F. Sassara
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-29 Por tôpico Osvaldo Kussama
2009/10/29 Leandro DUTRA :
> 2009/10/27 Osvaldo Kussama :
>> Dê uma olhada no Charlint [1]. Talvez seja o que está procurando:
>
> De fato, o charlint trabalha decompondo os caracteres.  Depois tento
> ver como o faz.
>
> Agora, preciso descobrir como transformar seja o unac, seja o
> charlint, numa função dentro do PostgreSQL — como a gente costuma
> fazer com Business::BR::CNPJ ou Email::Valid, por exemplo.
>
> Mas obrigado, já ajudou muito!
>


O que achei interessante é que a decomposição utilizada foi definida
pelo próprio consórcio Unicode e dessa forma, creio eu, não existem
"chutes" sobre os aspectos de acentuação considerados anteriormente
nesta thread.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-29 Por tôpico Leandro DUTRA
2009/10/27 Osvaldo Kussama :
> Dê uma olhada no Charlint [1]. Talvez seja o que está procurando:

De fato, o charlint trabalha decompondo os caracteres.  Depois tento
ver como o faz.

Agora, preciso descobrir como transformar seja o unac, seja o
charlint, numa função dentro do PostgreSQL — como a gente costuma
fazer com Business::BR::CNPJ ou Email::Valid, por exemplo.

Mas obrigado, já ajudou muito!


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3854 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
Sent from Sao Paulo, SP, Brazil
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-29 Por tôpico Leonardo Cezar
2009/10/27 Leonardo Cezar :

Homologando essa solulção de conversão de unicode para ascii me
deparei com um bug(?):

>      name       | setting
> -+-
>  client_encoding | UTF8
>  server_encoding | UTF8
>
> SELECT to_ascii('ÁÉÍÓÚáéíóÉÓ£¤©');
 ^^
>    to_ascii
> 
>  AEIOUaei EOL C
  ^^
Aquela tabela de tradução utilizada no núcleo do postgres não converte
meu "ó" e provavelmente não deve funcionar para outros caracteres.

Alguém tem idéia onde foi que eu errei??


Definição da função:

CREATE OR REPLACE FUNCTION public.to_ascii(IN a TEXT, OUT o TEXT)
   LANGUAGE PLPGSQL
AS
$public_to_ascii$
DECLARE
   -- baseado em src/backend/util/udt/ascii.c
   t TEXT :=  $$  cL Y  "Ca  -R 'u .,  ?AAAC
NOxOYTBaaac no/oyty$$;
   i INTEGER := 1;
   text_ascii TEXT := ;
   range INTEGER := 160;
   z INTEGER := 0;
BEGIN
WHILE (i <= length(a)) LOOP
   z := ascii(substr(a,i,1));
   IF z < 128 THEN
   o := COALESCE(o,'') || substr(a,i,1);
   ELSIF z < range THEN
   o := COALESCE(o,'') || $$ $$;
   ELSE
   o := COALESCE(o,'') || substr(t,(z - range)+1,1) ;
   END IF;
   i := i + 1;
END LOOP;
RETURN;
END;
$public_to_ascii$;

-Leo
-- 
Leonardo Cezar
http://www.aslid.org.br
http://postgreslogia.wordpress.com
http://www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Rodolfo
é o seguinte.acho que vc não entendeu...vc pode atingir o resultado
desejado dependendo de ONDE ficará postado o resultado da consulta.deixa
eu dar um exemplo:

vc faz uma consulta pra imprimir a string rua de um cliente(digamos que seja
Cj. Rio Xingú).para ser mostrada no browser pela compilação de uma
pagina em PHP rodando pelo apache..se seu apache estiver configurado pra
exibir ISO-8859-1.mas sua consulta retorna caracteres em UTF-8 o que
será exibido sera uma string com falhas em acentuação... por isso quero
saber pra onde vai essa consulta..acho que me expressei melhor agora.
Porem falo isso pra ajudar o cara do topico aesó por issoespero que
vc comprenda agora

2009/10/27 Osvaldo Kussama 

> 2009/10/27 Rodolfo :
> > eu acho que não tem necessidade.se vc puder me dizer onde vai ser
> > mostrado essa consulta.acho que poderia dar alguma sugestão.
>
>
> Creio que você não está entendendo o problema.
> O que vai ser mostrado é o resultado da consulta e o problema consiste
> precisamente em como construir esta consulta de modo que o PostgreSQL
> retorne a gama de resultados desejados.
>
> Osvaldo
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Leonardo Cezar
2009/10/27 Leandro DUTRA :
> 2009/10/27 Euler Taveira de Oliveira :

> Precisaria criar um programa a ser chamado, ou tem como criar uma
> função SQL diretamente a partir das funções C?

Não precisa de funções "C" para se chegar neste resultado (vide estudo abaixo).

>> Neste caso ele gera uma tabela de mapeamento
>> utilizando o padrão Unicode. Assim, ele faz a conversão de MinhaCodificação
>> para UTF-16 (utilizando iconv), faz a busca na tabela, substitui os 
>> caracteres
>> encontrados e depois converte novamente para MinhaCodificação.

Estranho, utilizei a tabela base para a codificação em LATIN1 e
funciona mesmo para Unicode. Esquecendo as questões de segurança, não
se trata apenas de implementação barata?

>> O critério é o padrão Unicode.
>
> Imagino que pela decomposição padrão de cada caracter (ou glifo)?

Não acho que glifos tenham qualquer relação.

Os primeiros octetos do UTF-8 são reservados para caracteres de 7 bits
da antiga US-ASCII por questões de compatibilidade, então podemos
considerar que a seguinte implementação funciona em ambos esquemas:

CREATE OR REPLACE FUNCTION public.to_ascii(IN a TEXT, OUT o TEXT)
LANGUAGE PLPGSQL
AS
$public_to_ascii$
DECLARE
-- baseado em src/backend/util/udt/ascii.c
t TEXT :=  $$  cL Y  "Ca  -R 'u .,  ?AAAC
NOxOYTBaaac no/oyty$$;
i INTEGER := 1;
text_ascii TEXT := ;
range INTEGER := 160;
z INTEGER := 0;
BEGIN
WHILE (i <= length(a)) LOOP
z := ascii(substr(a,i,1));
IF z < 128 THEN
o := COALESCE(o,'') || substr(a,i,1);
ELSIF z < range THEN
o := COALESCE(o,'') || $$ $$;
ELSE
o := COALESCE(o,'') || substr(t,(z - range)+1,1) ;
END IF;
i := i + 1;
END LOOP;
RETURN;
END;
$public_to_ascii$;

Considerando o esquema public precedendo o esquema pg_catalog no seu
search_patch vc tem uma solução que atende ambas codificações de forma
transparente.

Provavelmente existem representações de símbolos (glifos) não
compatíveis com a saída desejada e este poderia ser alterado na
variável "t"

postgres=# SELECT name,setting from pg_settings
 WHERE name LIKE '%encoding';
  name   | setting
-+-
 client_encoding | UTF8
 server_encoding | UTF8

SELECT to_ascii('ÁÉÍÓÚáéíóÉÓ£¤©');
to_ascii

 AEIOUaei EOL C

postgres=# SELECT pg_catalog.to_ascii('ÁÉÍÓÚáéíóÉÓ£¤©');
ERROR:  encoding conversion from UTF8 to ASCII not supported

Abraço!

-Leo
-- 
Leonardo Cezar
http://www.aslid.org.br
http://postgreslogia.wordpress.com
http://www.dextra.com.br/postgres
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Osvaldo Kussama
2009/10/27 Leandro DUTRA :
> 2009/10/27 Euler Taveira de Oliveira :
>> Existe solução em C também [1].
>
> Precisaria criar um programa a ser chamado, ou tem como criar uma
> função SQL diretamente a partir das funções C?
>
>
>> Neste caso ele gera uma tabela de mapeamento
>> utilizando o padrão Unicode. Assim, ele faz a conversão de MinhaCodificação
>> para UTF-16 (utilizando iconv), faz a busca na tabela, substitui os 
>> caracteres
>> encontrados e depois converte novamente para MinhaCodificação.
>
> Interessante, achei que fosse normalizar a entrada para o formato
> canônico, a partir daí removendo os sinais diacríticos da seqüência de
> caracteres antes de converter para o formato de entrada.
>
> Aliás, o exemplo que a página de manual da unac dá parece isso:
> converter æ em ae.
>
>
>> O critério é o padrão Unicode.
>
> Imagino que pela decomposição padrão de cada caracter (ou glifo)?
>


Lenadro:

Dê uma olhada no Charlint [1]. Talvez seja o que está procurando:
"Charlint is a perl script that works as a simple filter. It uses
UTF-8 both for input and for output."

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Leandro DUTRA
2009/10/27 Euler Taveira de Oliveira :
> Existe solução em C também [1].

Precisaria criar um programa a ser chamado, ou tem como criar uma
função SQL diretamente a partir das funções C?


> Neste caso ele gera uma tabela de mapeamento
> utilizando o padrão Unicode. Assim, ele faz a conversão de MinhaCodificação
> para UTF-16 (utilizando iconv), faz a busca na tabela, substitui os caracteres
> encontrados e depois converte novamente para MinhaCodificação.

Interessante, achei que fosse normalizar a entrada para o formato
canônico, a partir daí removendo os sinais diacríticos da seqüência de
caracteres antes de converter para o formato de entrada.

Aliás, o exemplo que a página de manual da unac dá parece isso:
converter æ em ae.


> O critério é o padrão Unicode.

Imagino que pela decomposição padrão de cada caracter (ou glifo)?


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3854 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
Sent from Sao Paulo, SP, Brazil
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Osvaldo Kussama
2009/10/27 Rodolfo :
> eu acho que não tem necessidade.se vc puder me dizer onde vai ser
> mostrado essa consulta.acho que poderia dar alguma sugestão.


Creio que você não está entendendo o problema.
O que vai ser mostrado é o resultado da consulta e o problema consiste
precisamente em como construir esta consulta de modo que o PostgreSQL
retorne a gama de resultados desejados.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Rodolfo
eu acho que não tem necessidade.se vc puder me dizer onde vai ser
mostrado essa consulta.acho que poderia dar alguma sugestão.

2009/10/27 Celso 

> Não sei se é a melhor solução, mas eu criei uma function
>
>
> CREATE OR REPLACE FUNCTION fc_ascii(character varying)
>  RETURNS text AS
> $BODY$
>select translate($1, 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
> 'aiiioAIIIOcC');
> $BODY$
>  LANGUAGE 'sql';
>
>
>
>
>
> - Original Message -
> From: "Osvaldo Kussama" 
> To: "Comunidade PostgreSQL Brasileira" <
> pgbr-geral@listas.postgresql.org.br>
> Sent: Tuesday, October 27, 2009 5:55 PM
> Subject: Re: [pgbr-geral] problema com acentos no UTF8
>
>
> 2009/10/27 Rodolfo :
> > ja resolveram o problema do cara ? eu so fiz algumas perguntas...e até
> > agora
> > nada de me responderemso quis ajudar..bom fica de pé as
> > perguntas sobre onde vai ser mostrado essas consultas (se aplicativo ou
> > algum browser).
>
>
> Apenas para não ficar sem resposta:
> O que a função to_ascii [1] faz é remover os acentos dos caracteres,
> assim uma consulta:
> SELECT nome FROM tabela WHERE to_ascii(nome) ILIKE 'joao%';
> poderia retornar:
> joão
> João
> joao
> JOAO
> joaõ
> JÕAO
> etc
>
> Acontece que esta função só é aplicável aos encodings LATIN1, LATIN2,
> LATIN9 e WIN1250 mas o encoding que está se tornando padrão é o UTF-8.
> A pergunta era como utilizar algo semelhante à função to_ascii com o
> encoding UTF-8.
>
> Osvaldo
> [1]
> http://www.postgresql.org/docs/current/interactive/functions-string.html
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Celso
Não sei se é a melhor solução, mas eu criei uma function


CREATE OR REPLACE FUNCTION fc_ascii(character varying)
  RETURNS text AS
$BODY$
select translate($1, 'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ', 
'aiiioAIIIOcC');
$BODY$
  LANGUAGE 'sql';





- Original Message - 
From: "Osvaldo Kussama" 
To: "Comunidade PostgreSQL Brasileira" 
Sent: Tuesday, October 27, 2009 5:55 PM
Subject: Re: [pgbr-geral] problema com acentos no UTF8


2009/10/27 Rodolfo :
> ja resolveram o problema do cara ? eu so fiz algumas perguntas...e até 
> agora
> nada de me responderemso quis ajudar..bom fica de pé as
> perguntas sobre onde vai ser mostrado essas consultas (se aplicativo ou
> algum browser).


Apenas para não ficar sem resposta:
O que a função to_ascii [1] faz é remover os acentos dos caracteres,
assim uma consulta:
SELECT nome FROM tabela WHERE to_ascii(nome) ILIKE 'joao%';
poderia retornar:
joão
João
joao
JOAO
joaõ
JÕAO
etc

Acontece que esta função só é aplicável aos encodings LATIN1, LATIN2,
LATIN9 e WIN1250 mas o encoding que está se tornando padrão é o UTF-8.
A pergunta era como utilizar algo semelhante à função to_ascii com o
encoding UTF-8.

Osvaldo
[1] http://www.postgresql.org/docs/current/interactive/functions-string.html
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Osvaldo Kussama
2009/10/27 Rodolfo :
> ja resolveram o problema do cara ? eu so fiz algumas perguntas...e até agora
> nada de me responderemso quis ajudar..bom fica de pé as
> perguntas sobre onde vai ser mostrado essas consultas (se aplicativo ou
> algum browser).


Apenas para não ficar sem resposta:
O que a função to_ascii [1] faz é remover os acentos dos caracteres,
assim uma consulta:
SELECT nome FROM tabela WHERE to_ascii(nome) ILIKE 'joao%';
poderia retornar:
joão
João
joao
JOAO
joaõ
JÕAO
etc

Acontece que esta função só é aplicável aos encodings LATIN1, LATIN2,
LATIN9 e WIN1250 mas o encoding que está se tornando padrão é o UTF-8.
A pergunta era como utilizar algo semelhante à função to_ascii com o
encoding UTF-8.

Osvaldo
[1] http://www.postgresql.org/docs/current/interactive/functions-string.html
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Euler Taveira de Oliveira
Osvaldo Kussama escreveu:
> Muito interessante esta solução. É possível incorporá-la ao PostgreSQL
> como uma função "nativa"?
> 
Acho pouco provável. unac não é portável AFAICK. :( Mas nada impede que alguém
faça a implementação e coloque no PGFoundry.

Além disso, a partir da 8.5 teremos um novo módulo do contrib unaccent que
remove acentos dos lexemas caso seja utilizado na configuração de busca
textual. Do mesmo modo que o unac, você precisa gerar as regras (aka
mapeamento) entre os caracteres.


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Rodolfo
ja resolveram o problema do cara ? eu so fiz algumas perguntas...e até agora
nada de me responderemso quis ajudar..bom fica de pé as
perguntas sobre onde vai ser mostrado essas consultas (se aplicativo ou
algum browser).

2009/10/27 Andre Fernandes 

>
> >
>> >
>> >> A questão é: o que são caracteres acentuados em línguas diferentes
>> >> daquelas representadas pelos latin-x (mas representadas no utf-8)?
>> >
>> > Creio que cada língua teria de ter suas tabelas, e, na ausência,
>> > retornar o caracter original ou dar erro.
>> >
>> >
>> >> Será que existe nestas línguas algum tipo de correspondência
>> >> "acentuado - não acentuado"?
>> >
>> > Alguma sim, outras não… hebraico, por exemplo, tem, mas duvido que
>> chines.
>>
>> Pois é, foge ao meu conhecimento.
>
>
> Como curiosidade, já que foi mencionado, em chinês não existem caracteres
> acentuados, visto ser um idioma de ideogramas. Os mesmos não possuem
> correspondência direta com um som, apenas com um significado. (chinês na
> realidade são diversos idiomas, não apenas um, cada qual ininteligível para
> o outro, mas todos com a mesma escrita. Assim quem fala Mandarim e quem fala
> Cantonês somente consegue entender o outro se for de forma escrita, pois a
> fala não tem nada semelhante.)
> Assim, tirar acentos em chinês não faria sentido algum. Mas nesse caso,
> bastaria retornar o próprio ideograma ao executar uma função que tire
> acentos.
>
> Imagino que haja outros idiomas com característica semelhante (infelizmente
> o chinês é o único idioma que conheço baseado em ideogramas).
>
> Mas o problema surge quando pensamos em sinais gráficos que em um idioma é
> acento, em outro é marca de uma letra adicional do idioma. Não me recordo de
> nenhum caso no momento (faz tempo que fiz linguistica), mas sei que existem
> casos assim.
>
> --
> André de Camargo Fernandes
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Andre Fernandes
> >
> >
> >> A questão é: o que são caracteres acentuados em línguas diferentes
> >> daquelas representadas pelos latin-x (mas representadas no utf-8)?
> >
> > Creio que cada língua teria de ter suas tabelas, e, na ausência,
> > retornar o caracter original ou dar erro.
> >
> >
> >> Será que existe nestas línguas algum tipo de correspondência
> >> "acentuado - não acentuado"?
> >
> > Alguma sim, outras não… hebraico, por exemplo, tem, mas duvido que
> chines.
>
> Pois é, foge ao meu conhecimento.


Como curiosidade, já que foi mencionado, em chinês não existem caracteres
acentuados, visto ser um idioma de ideogramas. Os mesmos não possuem
correspondência direta com um som, apenas com um significado. (chinês na
realidade são diversos idiomas, não apenas um, cada qual ininteligível para
o outro, mas todos com a mesma escrita. Assim quem fala Mandarim e quem fala
Cantonês somente consegue entender o outro se for de forma escrita, pois a
fala não tem nada semelhante.)
Assim, tirar acentos em chinês não faria sentido algum. Mas nesse caso,
bastaria retornar o próprio ideograma ao executar uma função que tire
acentos.

Imagino que haja outros idiomas com característica semelhante (infelizmente
o chinês é o único idioma que conheço baseado em ideogramas).

Mas o problema surge quando pensamos em sinais gráficos que em um idioma é
acento, em outro é marca de uma letra adicional do idioma. Não me recordo de
nenhum caso no momento (faz tempo que fiz linguistica), mas sei que existem
casos assim.

-- 
André de Camargo Fernandes
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Osvaldo Kussama
2009/10/27 Euler Taveira de Oliveira :
> Osvaldo Kussama escreveu:
>> Só para complementar:
>> existem soluções que utilizam os métodos existentes em linguagens como
>> perl e python. Uma delas você pode ver em:
>> http://wiki.postgresql.org/wiki/Strip_accents_from_strings
>>
> Existe solução em C também [1]. Neste caso ele gera uma tabela de mapeamento
> utilizando o padrão Unicode. Assim, ele faz a conversão de MinhaCodificação
> para UTF-16 (utilizando iconv), faz a busca na tabela, substitui os caracteres
> encontrados e depois converte novamente para MinhaCodificação.

Muito interessante esta solução. É possível incorporá-la ao PostgreSQL
como uma função "nativa"?


>
>> PS. Nestes casos também não sei quais os critérios utilizados para
>> línguas não contempladas nos encodings latin-x.
>>
> O critério é o padrão Unicode.
>
> PS> estavam perguntando por ti no PGCon Brasil 2009. ;)

Pois é, infelizmente não pude ir mas acompanhei algumas coisas pela
internet e uma dessas foi o Lightning Talks onde, para minha surpresa,
ouvi meu nome ser citado.


>
> [1] http://www.nongnu.org/unac/unac-man3.en.html
>


Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Osvaldo Kussama
2009/10/27 Leandro DUTRA :
> 2009/10/26 Osvaldo Kussama :
>> Acho bem complicada tal solução.
>
> Complicada ou trabalhosa?

Para mim é complicada pois exige conhecimentos que não possuo e, imho,
não seria trivial obtê-los.


>
>
>> Veja que para alguns dos encodings Latin-x existe a função to_ascii
>> que transforma caracteres acentuados em não acentuados, mas para utf-8
>> esta função não se aplica.
>
> Porque seria apenas parcial, ou porque daria muito trabalho, ou…?

Pela definição constante do manual:
http://www.postgresql.org/docs/current/interactive/functions-string.html
"(only supports conversion from LATIN1, LATIN2, LATIN9, and WIN1250 encodings)"


>
>
>> A questão é: o que são caracteres acentuados em línguas diferentes
>> daquelas representadas pelos latin-x (mas representadas no utf-8)?
>
> Creio que cada língua teria de ter suas tabelas, e, na ausência,
> retornar o caracter original ou dar erro.
>
>
>> Será que existe nestas línguas algum tipo de correspondência
>> "acentuado - não acentuado"?
>
> Alguma sim, outras não… hebraico, por exemplo, tem, mas duvido que chines.

Pois é, foge ao meu conhecimento.


>
>
>> Talvez algum linguista possa sugerir uma solução plausível.
>
> Suspeito que seja mais trabalho de formiga que de linguista.
>


Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Euler Taveira de Oliveira
Osvaldo Kussama escreveu:
> Só para complementar:
> existem soluções que utilizam os métodos existentes em linguagens como
> perl e python. Uma delas você pode ver em:
> http://wiki.postgresql.org/wiki/Strip_accents_from_strings
> 
Existe solução em C também [1]. Neste caso ele gera uma tabela de mapeamento
utilizando o padrão Unicode. Assim, ele faz a conversão de MinhaCodificação
para UTF-16 (utilizando iconv), faz a busca na tabela, substitui os caracteres
encontrados e depois converte novamente para MinhaCodificação.

> PS. Nestes casos também não sei quais os critérios utilizados para
> línguas não contempladas nos encodings latin-x.
> 
O critério é o padrão Unicode.

PS> estavam perguntando por ti no PGCon Brasil 2009. ;)

[1] http://www.nongnu.org/unac/unac-man3.en.html


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico cleysson
se o resultado for mostrado em um browser vc pode tratar isso com um
método da linguagem utilizada!

Cleysson Lima
Desenvolvedor PHP
Tel: 61 8407 1875

Em 27/10/2009, Rodolfo  escreveu:
> o resultado da pesquisa vai ser mostrado onde ? num browser(como mozilla,
> internet explorer...) ou em outro aplicativo ?
> 
> 2009/10/27 Leandro DUTRA 
> 
> > 2009/10/26 Rodolfo :
> > > me responde uma coisa..ta tendo algum problema com acentuação onde ?
> > na
> > > hora de inputar os dados na tabela ? ou em exibir em algum outro
> > aplicativo ?
> >
> > Na pesquisa, e ainda não sei se dá para alterar o aplicativo.
> >
> >
> > --
> > skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
> > +55 (11) 3854 7191  gTalk: 
> > xmpp:leand...@jabber.org
> > +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
> > BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
> > Sent from Sao Paulo, SP, Brazil
> > ___
> > pgbr-geral mailing list
> > pgbr-geral@listas.postgresql.org.br
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
> 
> 
> 
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Rodolfo
o resultado da pesquisa vai ser mostrado onde ? num browser(como mozilla,
internet explorer...) ou em outro aplicativo ?

2009/10/27 Leandro DUTRA 

> 2009/10/26 Rodolfo :
> > me responde uma coisa..ta tendo algum problema com acentuação onde ?
> na
> > hora de inputar os dados na tabela ? ou em exibir em algum outro
> aplicativo ?
>
> Na pesquisa, e ainda não sei se dá para alterar o aplicativo.
>
>
> --
> skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
> +55 (11) 3854 7191  gTalk: 
> xmpp:leand...@jabber.org
> +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
> BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
> Sent from Sao Paulo, SP, Brazil
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Leandro DUTRA
2009/10/26 Osvaldo Kussama :
> existem soluções que utilizam os métodos existentes em linguagens como
> perl e python. Uma delas você pode ver em:
> http://wiki.postgresql.org/wiki/Strip_accents_from_strings

Muito bom, tem o potencial de ser algo mais genérico.


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3854 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
Sent from Sao Paulo, SP, Brazil
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Leandro DUTRA
2009/10/26 Rodolfo :
> me responde uma coisa..ta tendo algum problema com acentuação onde ? na
> hora de inputar os dados na tabela ? ou em exibir em algum outro aplicativo ?

Na pesquisa, e ainda não sei se dá para alterar o aplicativo.


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3854 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
Sent from Sao Paulo, SP, Brazil
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-27 Por tôpico Leandro DUTRA
2009/10/26 Osvaldo Kussama :
> Acho bem complicada tal solução.

Complicada ou trabalhosa?


> Veja que para alguns dos encodings Latin-x existe a função to_ascii
> que transforma caracteres acentuados em não acentuados, mas para utf-8
> esta função não se aplica.

Porque seria apenas parcial, ou porque daria muito trabalho, ou…?


> A questão é: o que são caracteres acentuados em línguas diferentes
> daquelas representadas pelos latin-x (mas representadas no utf-8)?

Creio que cada língua teria de ter suas tabelas, e, na ausência,
retornar o caracter original ou dar erro.


> Será que existe nestas línguas algum tipo de correspondência
> "acentuado - não acentuado"?

Alguma sim, outras não… hebraico, por exemplo, tem, mas duvido que chines.


> Talvez algum linguista possa sugerir uma solução plausível.

Suspeito que seja mais trabalho de formiga que de linguista.



-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3854 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
Sent from Sao Paulo, SP, Brazil
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-26 Por tôpico Osvaldo Kussama
2009/10/26 Osvaldo Kussama :
> 2009/10/26 Leandro DUTRA :
>> 2009/6/3 Osvaldo Kussama :
>>> CREATE FUNCTION sem_acento(text) RETURNS text  AS $$
>>>    SELECT translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
>>>                        'aiiioAIIIOcC');
>>> $$
>>> LANGUAGE sql IMMUTABLE STRICT;
>>>
>>> Ficaria assim:
>>> SELECT nome FROM cliente WHERE sem_acento(nome) ilike sem_acento(‘joao%’);
>>
>> Muito obrigado, quebrou um galho.
>>
>> Pergunta idiota: qual seria a solução ideal, quero dizer, aquela que
>> deveria ser implantada no PostgreSQL 8.5 e ir para o padrão ISO
>> SQL:2010?
>>
>
>
> Olá Leandro,
>
> Acho bem complicada tal solução.
> Veja que para alguns dos encodings Latin-x existe a função to_ascii
> que transforma caracteres acentuados em não acentuados, mas para utf-8
> esta função não se aplica.
>
> A questão é: o que são caracteres acentuados em línguas diferentes
> daquelas representadas pelos latin-x (mas representadas no utf-8)?
> Será que existe nestas línguas algum tipo de correspondência
> "acentuado - não acentuado"?
>
> Talvez algum linguista possa sugerir uma solução plausível.
>



Só para complementar:
existem soluções que utilizam os métodos existentes em linguagens como
perl e python. Uma delas você pode ver em:
http://wiki.postgresql.org/wiki/Strip_accents_from_strings

Osvaldo
PS. Nestes casos também não sei quais os critérios utilizados para
línguas não contempladas nos encodings latin-x.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-26 Por tôpico Rodolfo
me responde uma coisa..ta tendo algum problema com acentuação onde ? na
hora de inputar os dados na tabela ? ou em exibir em algum outro aplicativo
?

2009/10/26 Leandro DUTRA 

> 2009/6/3 Osvaldo Kussama :
> > CREATE FUNCTION sem_acento(text) RETURNS text  AS $$
> >SELECT translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
> >'aiiioAIIIOcC');
> > $$
> > LANGUAGE sql IMMUTABLE STRICT;
> >
> > Ficaria assim:
> > SELECT nome FROM cliente WHERE sem_acento(nome) ilike
> sem_acento(‘joao%’);
>
> Muito obrigado, quebrou um galho.
>
> Pergunta idiota: qual seria a solução ideal, quero dizer, aquela que
> deveria ser implantada no PostgreSQL 8.5 e ir para o padrão ISO
> SQL:2010?
>
>
> --
> skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
> +55 (11) 3854 7191  gTalk: 
> xmpp:leand...@jabber.org
> +55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
> BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
> Sent from Sao Paulo, SP, Brazil
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-26 Por tôpico Osvaldo Kussama
2009/10/26 Leandro DUTRA :
> 2009/6/3 Osvaldo Kussama :
>> CREATE FUNCTION sem_acento(text) RETURNS text  AS $$
>>    SELECT translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
>>                        'aiiioAIIIOcC');
>> $$
>> LANGUAGE sql IMMUTABLE STRICT;
>>
>> Ficaria assim:
>> SELECT nome FROM cliente WHERE sem_acento(nome) ilike sem_acento(‘joao%’);
>
> Muito obrigado, quebrou um galho.
>
> Pergunta idiota: qual seria a solução ideal, quero dizer, aquela que
> deveria ser implantada no PostgreSQL 8.5 e ir para o padrão ISO
> SQL:2010?
>


Olá Leandro,

Acho bem complicada tal solução.
Veja que para alguns dos encodings Latin-x existe a função to_ascii
que transforma caracteres acentuados em não acentuados, mas para utf-8
esta função não se aplica.

A questão é: o que são caracteres acentuados em línguas diferentes
daquelas representadas pelos latin-x (mas representadas no utf-8)?
Será que existe nestas línguas algum tipo de correspondência
"acentuado - não acentuado"?

Talvez algum linguista possa sugerir uma solução plausível.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-10-26 Por tôpico Leandro DUTRA
2009/6/3 Osvaldo Kussama :
> CREATE FUNCTION sem_acento(text) RETURNS text  AS $$
>    SELECT translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
>                        'aiiioAIIIOcC');
> $$
> LANGUAGE sql IMMUTABLE STRICT;
>
> Ficaria assim:
> SELECT nome FROM cliente WHERE sem_acento(nome) ilike sem_acento(‘joao%’);

Muito obrigado, quebrou um galho.

Pergunta idiota: qual seria a solução ideal, quero dizer, aquela que
deveria ser implantada no PostgreSQL 8.5 e ir para o padrão ISO
SQL:2010?


-- 
skype:leandro.gfc.dutra?chat  Yahoo!: ymsgr:sendIM?lgcdutra
+55 (11) 3854 7191  gTalk: xmpp:leand...@jabber.org
+55 (11) 9406 7191ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT-3  MSN: msnim:chat?contact=lean...@dutra.fastmail.fm
Sent from Sao Paulo, SP, Brazil
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-06-03 Por tôpico Luigi Castro Cardeles
latin1 não é uma codificação muito boa...
O Osvaldo postou isso no passado (tem várias threads sobre isso, peguei uma
mais recente e com mais links).

Copiando o que o Osvaldo escreveu:

(...)
O histórico tem diversas threads sobre isso.
Creio que você deva ler este post do Roberto Mello:
http://blog.divisiblebyfour.org/search/label/encoding
(bem como o artigo do Joel Spolsky que ele cita).

Estas threads (dentre outras) falam sobre isso:
http://www.nabble.com/encoding-to9394266.html#a9400650
http://www.nabble.com/Qual-o-melhor-Encode-para-o-Brasil--td15857951.html#a15857951
http://www.nabble.com/Ainda-sobre-Latin1-no-8.3-td15913717.html#a15923070
(...)

 
[]'s
Luigi Castro Cardeles


2009/6/3 Nilson Chagas 

> 2009/6/3 Osvaldo Kussama 
>
> 2009/6/3 Leandro Müller :
>> >
>> > Sou novo nesta lista, nesses últimos meses estou migrando uma base de
>> dados
>> > de 4gb para postgresql 8.3.7, utilizávamos mysql na empresa, mas ficou
>> muito
>> > lento devido a complexidade de relatórios e diversos recursos que
>> precisamos
>> > agora.
>>
>> Seja bem vindo!
>>
>>
>> >
>> > Bom o único problema que tivemos com o banco de dados é quanto a
>> pesquisa
>> > com ilike em palavras com acentos.
>> >
>> > Exemplo:
>> >
>> > Select nome from cliente where nome ilike ‘joao%’;
>> >
>> > O João não lista, fiz testes com a versão 8.4 e o mesmo ocorre, esse
>> banco
>> > esta na codificação UTF8
>>
>> Sim João é diferente de Joao e também diferente de joão, JOÃO e joao.
>>
>>
>> >
>> > Tentei criar um banco como latin1 porem o post não aceita criar.
>>
>> Você não pode mudar mas ele aceita criar (vide initdb) mas tem que ser
>> compatível com o locale de seu S.O.
>>
>>
>> >
>> > Alguém tem idéia de que tipo configuração devo fazer para fazer
>> pesquisas
>> > com acento?
>> >
>>
>> Quando o encoding é LATIN1, LATIN2, LATIN9 ou WIN1250 podemos usar a
>> função to_ascii:
>> http://www.postgresql.org/docs/current/interactive/functions-string.html
>>
>> Quando se utiliza o UTF8 o pessoal tem utilizado uma função de
>> conversão como esta:
>>
>> CREATE FUNCTION sem_acento(text) RETURNS text  AS $$
>>SELECT translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
>>'aiiioAIIIOcC');
>> $$
>> LANGUAGE sql IMMUTABLE STRICT;
>>
>> Ficaria assim:
>> SELECT nome FROM cliente WHERE sem_acento(nome) ilike sem_acento(‘joao%’);
>>
>> Caso faça uso intensivo desta query considere a criação de um índice
>> funcional para melhorar a performance.
>>
>> Osvaldo
>
>
> O Hostmaster, criou o banco do site que estou trabalhando com Latin1
> (versão 8.2.7).
> E lá utilizo o indice e pesquisa como lower(to_ascii(campo))  e consigo
> pesquisar de tudo que é jeito.
>
> A algum problema com o metodo utilizado???
> --
> []s
> Nilson Chagas - Ubuntu User 25794
> ---
> Visite:
> http://www.amados.com.br/podcast -> Peça gratuitamente um curso Bíblico
> http://tempodesalvacao.blogspot.com/
> http://bbnradio.org/ -> Ouça a rádio e faça gratuitamente um Curso Biblico
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-06-03 Por tôpico Nilson Chagas
2009/6/3 Osvaldo Kussama 

> 2009/6/3 Leandro Müller :
> >
> > Sou novo nesta lista, nesses últimos meses estou migrando uma base de
> dados
> > de 4gb para postgresql 8.3.7, utilizávamos mysql na empresa, mas ficou
> muito
> > lento devido a complexidade de relatórios e diversos recursos que
> precisamos
> > agora.
>
> Seja bem vindo!
>
>
> >
> > Bom o único problema que tivemos com o banco de dados é quanto a pesquisa
> > com ilike em palavras com acentos.
> >
> > Exemplo:
> >
> > Select nome from cliente where nome ilike ‘joao%’;
> >
> > O João não lista, fiz testes com a versão 8.4 e o mesmo ocorre, esse
> banco
> > esta na codificação UTF8
>
> Sim João é diferente de Joao e também diferente de joão, JOÃO e joao.
>
>
> >
> > Tentei criar um banco como latin1 porem o post não aceita criar.
>
> Você não pode mudar mas ele aceita criar (vide initdb) mas tem que ser
> compatível com o locale de seu S.O.
>
>
> >
> > Alguém tem idéia de que tipo configuração devo fazer para fazer pesquisas
> > com acento?
> >
>
> Quando o encoding é LATIN1, LATIN2, LATIN9 ou WIN1250 podemos usar a
> função to_ascii:
> http://www.postgresql.org/docs/current/interactive/functions-string.html
>
> Quando se utiliza o UTF8 o pessoal tem utilizado uma função de
> conversão como esta:
>
> CREATE FUNCTION sem_acento(text) RETURNS text  AS $$
>SELECT translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
>'aiiioAIIIOcC');
> $$
> LANGUAGE sql IMMUTABLE STRICT;
>
> Ficaria assim:
> SELECT nome FROM cliente WHERE sem_acento(nome) ilike sem_acento(‘joao%’);
>
> Caso faça uso intensivo desta query considere a criação de um índice
> funcional para melhorar a performance.
>
> Osvaldo


O Hostmaster, criou o banco do site que estou trabalhando com Latin1 (versão
8.2.7).
E lá utilizo o indice e pesquisa como lower(to_ascii(campo))  e consigo
pesquisar de tudo que é jeito.

A algum problema com o metodo utilizado???
-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.amados.com.br/podcast -> Peça gratuitamente um curso Bíblico
http://tempodesalvacao.blogspot.com/
http://bbnradio.org/ -> Ouça a rádio e faça gratuitamente um Curso Biblico
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-06-03 Por tôpico Nilson Chagas
Mas para isto o banco não tem que estar com Latin ou Unicode??? (sou leigo
no assunto)



-- 
[]s
Nilson Chagas - Ubuntu User 25794
---
Visite:
http://www.amados.com.br/podcast -> Peça gratuitamente um curso Bíblico
http://tempodesalvacao.blogspot.com/
http://bbnradio.org/ -> Ouça a rádio e faça gratuitamente um Curso Biblico


2009/6/3 josemario rosa 

> cara isto e uma lacuna a ser preenchida no postgre. ja tive este problema e
> nao tem como resolver eu achoatt
> mario
>
> 2009/6/3 Leandro Müller 
>
>>  Ola turma.
>>
>>
>>
>> Sou novo nesta lista, nesses últimos meses estou migrando uma base de
>> dados de 4gb para postgresql 8.3.7, utilizávamos mysql na empresa, mas ficou
>> muito lento devido a complexidade de relatórios e diversos recursos que
>> precisamos agora.
>>
>>
>>
>> Bom o único problema que tivemos com o banco de dados é quanto a pesquisa
>> com ilike em palavras com acentos.
>>
>> Exemplo:
>>
>>
>>
>> Select nome from cliente where nome ilike ‘joao%’;
>>
>>
>>
>> O João não lista, fiz testes com a versão 8.4 e o mesmo ocorre, esse banco
>> esta na codificação UTF8
>>
>>
>>
>> Tentei criar um banco como latin1 porem o post não aceita criar.
>>
>>
>>
>> Alguém tem idéia de que tipo configuração devo fazer para fazer pesquisas
>> com acento?
>>
>>
>>
>> Agradeço.
>>
>>
>>
>> *At.*
>>
>>
>>
>> *Leandro Müller*
>>
>> *Analista de Sistemas ***
>>
>>
>>
>> ___
>> pgbr-geral mailing list
>> pgbr-geral@listas.postgresql.org.br
>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>
>>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-06-03 Por tôpico Osvaldo Kussama
2009/6/3 Leandro Müller :
>
> Sou novo nesta lista, nesses últimos meses estou migrando uma base de dados
> de 4gb para postgresql 8.3.7, utilizávamos mysql na empresa, mas ficou muito
> lento devido a complexidade de relatórios e diversos recursos que precisamos
> agora.

Seja bem vindo!


>
> Bom o único problema que tivemos com o banco de dados é quanto a pesquisa
> com ilike em palavras com acentos.
>
> Exemplo:
>
> Select nome from cliente where nome ilike ‘joao%’;
>
> O João não lista, fiz testes com a versão 8.4 e o mesmo ocorre, esse banco
> esta na codificação UTF8

Sim João é diferente de Joao e também diferente de joão, JOÃO e joao.


>
> Tentei criar um banco como latin1 porem o post não aceita criar.

Você não pode mudar mas ele aceita criar (vide initdb) mas tem que ser
compatível com o locale de seu S.O.


>
> Alguém tem idéia de que tipo configuração devo fazer para fazer pesquisas
> com acento?
>

Quando o encoding é LATIN1, LATIN2, LATIN9 ou WIN1250 podemos usar a
função to_ascii:
http://www.postgresql.org/docs/current/interactive/functions-string.html

Quando se utiliza o UTF8 o pessoal tem utilizado uma função de
conversão como esta:

CREATE FUNCTION sem_acento(text) RETURNS text  AS $$
SELECT translate($1,'áàâãäéèêëíìïóòôõöúùûüÁÀÂÃÄÉÈÊËÍÌÏÓÒÔÕÖÚÙÛÜçÇ',
'aiiioAIIIOcC');
$$
LANGUAGE sql IMMUTABLE STRICT;

Ficaria assim:
SELECT nome FROM cliente WHERE sem_acento(nome) ilike sem_acento(‘joao%’);

Caso faça uso intensivo desta query considere a criação de um índice
funcional para melhorar a performance.

Osvaldo
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] problema com acentos no UTF8

2009-06-03 Por tôpico josemario rosa
cara isto e uma lacuna a ser preenchida no postgre. ja tive este problema e
nao tem como resolver eu achoatt
mario

2009/6/3 Leandro Müller 

>  Ola turma.
>
>
>
> Sou novo nesta lista, nesses últimos meses estou migrando uma base de dados
> de 4gb para postgresql 8.3.7, utilizávamos mysql na empresa, mas ficou muito
> lento devido a complexidade de relatórios e diversos recursos que precisamos
> agora.
>
>
>
> Bom o único problema que tivemos com o banco de dados é quanto a pesquisa
> com ilike em palavras com acentos.
>
> Exemplo:
>
>
>
> Select nome from cliente where nome ilike ‘joao%’;
>
>
>
> O João não lista, fiz testes com a versão 8.4 e o mesmo ocorre, esse banco
> esta na codificação UTF8
>
>
>
> Tentei criar um banco como latin1 porem o post não aceita criar.
>
>
>
> Alguém tem idéia de que tipo configuração devo fazer para fazer pesquisas
> com acento?
>
>
>
> Agradeço.
>
>
>
> *At.*
>
>
>
> *Leandro Müller*
>
> *Analista de Sistemas ***
>
>
>
> ___
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] problema com acentos no UTF8

2009-06-03 Por tôpico Leandro Müller
Ola turma.

 

Sou novo nesta lista, nesses últimos meses estou migrando uma base de dados
de 4gb para postgresql 8.3.7, utilizávamos mysql na empresa, mas ficou muito
lento devido a complexidade de relatórios e diversos recursos que precisamos
agora.

 

Bom o único problema que tivemos com o banco de dados é quanto a pesquisa
com ilike em palavras com acentos.

Exemplo:

 

Select nome from cliente where nome ilike ‘joao%’;

 

O João não lista, fiz testes com a versão 8.4 e o mesmo ocorre, esse banco
esta na codificação UTF8

 

Tentei criar um banco como latin1 porem o post não aceita criar.

 

Alguém tem idéia de que tipo configuração devo fazer para fazer pesquisas
com acento?

 

Agradeço.

 

At.

 

Leandro Müller

Analista de Sistemas 

 

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral