Re: convert accented character to base character
От | Thom Brown |
---|---|
Тема | Re: convert accented character to base character |
Дата | |
Msg-id | AANLkTinO4_BPnjXBcqD3Lp7_d13M25uZ2D_6NJ3zmUn-@mail.gmail.com обсуждение исходный текст |
Ответ на | convert accented character to base character ("Neubert Joachim" <J.Neubert@zbw.eu>) |
Ответы |
Re: convert accented character to base character
|
Список | pgsql-general |
On 28 June 2010 16:22, Neubert Joachim <J.Neubert@zbw.eu> wrote: > I want to convert accented characters to the according base character, e.g. > "Ü" or "Ú" to "U". > > > > Is there a way to do this with pgsql functions? > > > > > > postgres=# select convert('Ü', 'UTF8', 'SQL_ASCII'); > > convert > > ---------- > > \303\234 > > > > did not work as I had hoped. > > > > Any help would be appreciated - > > > > Cheers, Joachim There's a function called unaccent coming in PostgreSQL 9.0: http://www.postgresql.org/docs/9.0/static/unaccent.html But in the meantime, you could try this: CREATE OR REPLACE FUNCTION unaccent_string(text) RETURNS text AS $$ DECLARE input_string text := $1; BEGIN input_string := translate(input_string, 'âãäåāăąÁÂÃÄÅĀĂĄèééêëēĕėęěĒĔĖĘĚìíîïìĩīĭÌÍÎÏÌĨĪĬóôõöōŏőÒÓÔÕÖŌŎŐùúûüũūŭůÙÚÛÜŨŪŬŮ', 'aaaaaaaaaaaaaaaeeeeeeeeeeeeeeeiiiiiiiiiiiiiiiiooooooooooooooouuuuuuuuuuuuuuuu'); return input_string; END; $$ LANGUAGE plpgsql; Then you can do: select unaccent_string('Ü'); Someone else may have a better suggestion though. Regards Thom
В списке pgsql-general по дате отправления: