Re: Quitar acentos de palabras codificadas en UTF8

From: Gunnar Wolf <gwolf(at)gwolf(dot)org>
To: Julio Cesar Sánchez González <knowhow(at)sistemasyconectividad(dot)com(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Quitar acentos de palabras codificadas en UTF8
Date: 2008-04-20 07:07:31
Message-ID: 20080420070731.GB752@cajita.gateway.2wire.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Julio Cesar Sánchez González dijo [Fri, Apr 18, 2008 at 06:01:15PM -0500]:
> Julio Cesar Sánchez González wrote:
> >Hola a todos compañeros listeros, el motivo del siguiente email es el de preguntarles si conocen alguna funcion que elimine acentos en una base de datos UTF8, antes usaba la funcion
> >to_ascii en bases de datos Latin1 para este proposito ,pero ahora que empiezo a migrar todo a UTF8 me topo con el siguiente problema: ERROR: "la conversión de codificación de UTF8 a
> >ASCII no está soportada ".
> >
> Hola de nuevo compañeros, pues aqui expongo la solucion que encontre para este problema para que quede en el registro:
> (...)
> Para eliminar los acentos basta con un simple translate.
> (...)
> El prototipo de funcion quedaria asi:
>
> create or replace function sinacentos (text) returns text AS $$
> select translate($1,'áéíóúÁÉÍÓÚäëïöüÄËÏÖÜ','aeiouAEIOUaeiouAEIOU');
> $$ language sql;

Ummm... Bueno, si vas a traducir únicamente lo que es mapeable a
latin1, voy de acuerdo contigo - claro, te faltan los acentos graves y
circunflejos posibles. Pero justamente no respondí a este correo
porque preguntabas acerca de UTF8 - Con Unicode hay una cantidad
tremenda de modicicadores que puedes aplicar a tus caracteres base, y
no sólo puedes aplicarlo a las vocales. ¿Ejemplos? Consonantes
acentuadas (como la l, r, n, c - acentuadas o cruzadas en lenguajes
eslavos), diferentes modificadores (no me sé sus nombres, claro, pero
aparte de los ya comunes acentos grave, agudo, circunflejo, diéresis y
tilde, tienes una cantidad tremenda de otros simbolitos), caracteres
compuestos, caracteres con más de un tipo de acento, y un tremendo
etcétera.

Sí, si tus datos son exclusivamente en español.. Me callo ;-) Lo que
muestras es _casi_ suficiente (faltan ñ, símbolos de apertura de
interrogación/exclamación... y no sé qué más).

Saludos,

--
Gunnar Wolf - gwolf(at)gwolf(dot)org - (+52-55)5623-0154 / 1451-2244
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jeremias Martinez 2008-04-20 18:25:53 Presentación y consulta
Previous Message Roberto Guevara 2008-04-19 23:31:12 Re: Arrancar postgres