Thread: Getting rid of accents..

Getting rid of accents..

From
Date:

Is there any easy way for converting accented text to
closest text  without accents in postgresql ?

eg:

BÂLÂ MORGHÂB  to  BALA MORGHAB




Regds
Mallah.


-----------------------------------------
Get your free web based email at trade-india.com.  "India's Leading B2B eMarketplace.!"
http://www.trade-india.com/




Re: Getting rid of accents..

From
Randall Lucas
Date:
Hi Mallah,

I had this problem once, and put together this bunch of regexes.  It's
by no means optimal, but should solve 90% and would easily be adapted
into a plperl function.

Begin perl:  $value =~ s/[\xc0-\xc6]/A/g;  $value =~ s/[\xc7]/C/g;  $value =~ s/[\xc8-\xcb]/E/g;  $value =~
s/[\xcc-\xcf]/I/g; $value =~ s/[\xd1]/N/g;  $value =~ s/[\xd2-\xd6\xd8]/O/g;  $value =~ s/[\xd9-\xdc]/U/g;  $value =~
s/[\xdd]/Y/g;
  $value =~ s/[\xe0-\xe6]/a/g;  $value =~ s/[\xe7]/c/g;  $value =~ s/[\xe8-\xeb]/e/g;  $value =~ s/[\xec-\xef]/i/g;
$value=~ s/[\xf1]/n/g;  $value =~ s/[\xf2-\xf6\xd8]/o/g;  $value =~ s/[\xf9-\xfc]/u/g;  $value =~ s/[\xfd\xff]/y/g; 



On Tuesday, May 27, 2003, at 04:55 PM, <mallah@trade-india.com> wrote:

>
>
> Is there any easy way for converting accented text to
> closest text  without accents in postgresql ?
>
> eg:
>
> BÂLÂ MORGHÂB  to  BALA MORGHAB
>
>
>
>
> Regds
> Mallah.
>
>
> -----------------------------------------
> Get your free web based email at trade-india.com.
>    "India's Leading B2B eMarketplace.!"
> http://www.trade-india.com/
>
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>



Re: Getting rid of accents..

From
Randall Lucas
Date:
Full disclosure on previously posted Perl code: I think I may have
cribbed all or part of that previous code from something (Perl
cookbook?).  In any case, the issue is essentially a mapping of which
ascii codes "look like" low-ascii, so I don't think there are any
authorship issues.

Best,

Randall

On Tuesday, May 27, 2003, at 04:55 PM, <mallah@trade-india.com> wrote:

>
>
> Is there any easy way for converting accented text to
> closest text  without accents in postgresql ?
>
> eg:
>
> BÂLÂ MORGHÂB  to  BALA MORGHAB
>
>
>
>
> Regds
> Mallah.
>
>
> -----------------------------------------
> Get your free web based email at trade-india.com.
>    "India's Leading B2B eMarketplace.!"
> http://www.trade-india.com/
>
>
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>



Re: Getting rid of accents..

From
Ian Barwick
Date:
On Tuesday 27 May 2003 22:55, mallah@trade-india.com wrote:
> Is there any easy way for converting accented text to
> closest text  without accents in postgresql ?
>
> eg:
>
> BÂLÂ MORGHÂB  to  BALA MORGHAB

Have you looked at to_ascii()? Something along the lines of

select to_ascii('Â', 'LATIN1')


Ian Barwick
barwick@gmx.net



Re: Getting rid of accents..

From
Date:
Thanks  Ian ,

Indeed its the simplest/easiest solution to this problem i feel.
i did tried to_ascii function but was not specifying 'LATIN1'

do i was getting error

tradein_clients=# SELECT to_ascii('BÂLÂ MORGHÂB' );
ERROR:  pg_to_ascii(): unsupported encoding from SQL_ASCII

would u like to explain it ?

Then i created a new database in latin1 encoding loaded the data
used to_ascii to convert , copied the data to new file and reloaded
back to original database  ;-)  .oO (tiring )

Lucas Thanks for that perl stuff too i will use it in some program
that stuffs arbitary text into database.

Regds
Mallah.

> On Tuesday 27 May 2003 22:55, mallah@trade-india.com wrote:
>> Is there any easy way for converting accented text to
>> closest text  without accents in postgresql ?
>>
>> eg:
>>
>> BÂLÂ MORGHÂB  to  BALA MORGHAB
>
> Have you looked at to_ascii()? Something along the lines of
>
> select to_ascii('Â', 'LATIN1')
>
>
> Ian Barwick
> barwick@gmx.net
>
>
> ---------------------------(end of broadcast)--------------------------- TIP 2: you can get off
> all lists at once with the unregister command
>    (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)



-----------------------------------------
Get your free web based email at trade-india.com.  "India's Leading B2B eMarketplace.!"
http://www.trade-india.com/




Re: Getting rid of accents..

From
Jean-Luc Lachance
Date:
Have a look at translate().  It behaves like the unix command 'tr'.


Randall Lucas wrote:
>
> Hi Mallah,
>
> I had this problem once, and put together this bunch of regexes.  It's
> by no means optimal, but should solve 90% and would easily be adapted
> into a plperl function.
>
> Begin perl:
>    $value =~ s/[\xc0-\xc6]/A/g;
>    $value =~ s/[\xc7]/C/g;
>    $value =~ s/[\xc8-\xcb]/E/g;
>    $value =~ s/[\xcc-\xcf]/I/g;
>    $value =~ s/[\xd1]/N/g;
>    $value =~ s/[\xd2-\xd6\xd8]/O/g;
>    $value =~ s/[\xd9-\xdc]/U/g;
>    $value =~ s/[\xdd]/Y/g;
>
>    $value =~ s/[\xe0-\xe6]/a/g;
>    $value =~ s/[\xe7]/c/g;
>    $value =~ s/[\xe8-\xeb]/e/g;
>    $value =~ s/[\xec-\xef]/i/g;
>    $value =~ s/[\xf1]/n/g;
>    $value =~ s/[\xf2-\xf6\xd8]/o/g;
>    $value =~ s/[\xf9-\xfc]/u/g;
>    $value =~ s/[\xfd\xff]/y/g;
>
> On Tuesday, May 27, 2003, at 04:55 PM, <mallah@trade-india.com> wrote:
>
> >
> >
> > Is there any easy way for converting accented text to
> > closest text  without accents in postgresql ?
> >
> > eg:
> >
> > BÂLÂ MORGHÂB  to  BALA MORGHAB
> >
> >
> >
> >
> > Regds
> > Mallah.
> >
> >
> > -----------------------------------------
> > Get your free web based email at trade-india.com.
> >    "India's Leading B2B eMarketplace.!"
> > http://www.trade-india.com/
> >
> >
> >
> > ---------------------------(end of
> > broadcast)---------------------------
> > TIP 3: if posting/reading through Usenet, please send an appropriate
> > subscribe-nomail command to majordomo@postgresql.org so that your
> > message can get through to the mailing list cleanly
> >
>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)