2009/10/27 Leonardo Cezar <lhce...@gmail.com>: 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 ., ?AAAAAAACEEEEIIII NOOOOOxOUUUUYTBaaaaaaaceeeeiiii no oooo/ouuuuyty$$; 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