Thread: to_ascii function

to_ascii function

From
Halley Pacheco de Oliveira
Date:
This query didn't work as I was expecting. Any reasons
for that ?

SELECT TO_ASCII('ÁÉÍÓÚáéíóúªº°')

result -> 'AEIOUaeioua  '

I used psql, java and phpPgAdmin without success.

(PostgreSQL 7.4.2 encoding latin1)

Regards,
Halley

______________________________________________________________________

Participe da pesquisa global sobre o Yahoo! Mail:
http://br.surveys.yahoo.com/global_mail_survey_br

Re: to_ascii function

From
Karel Zak
Date:
On Sat, Jun 05, 2004 at 10:39:15AM -0300, Halley Pacheco de Oliveira wrote:
> This query didn't work as I was expecting. Any reasons
> for that ?
>
> SELECT TO_ASCII('ÁÉÍÓÚáéíóú??°')
>
> result -> 'AEIOUaeioua  '
>
> I used psql, java and phpPgAdmin without success.
>
> (PostgreSQL 7.4.2 encoding latin1)

 Are all chars  in your query LATIN1  symbols and are you  sure that all
 used  chars  have counterpart  in  ASCII? For  this to_ascii()  support
 LATIN1, LATIN2  and WIN1250 only. I'm  not sure if  there is a  way how
 convert others special chars (for example some Asiatic encodings).

 # show server_encoding;
 server_encoding
 -----------------
 LATIN1

 # show client_encoding;
 client_encoding
 -----------------
 LATIN1

 # SELECT '>>' || TO_ASCII('ÁÉÍÓÚáéíóú??°') || '<<';
     ?column?
 -------------------
 >>AEIOUaeiou?? <<


 The last char  in the string is dec 176 (hex 0xB0). Which  char do you
 expect after conversion to ASCII (0-127)?

    Karel

--
 Karel Zak  <zakkr@zf.jcu.cz>
 http://home.zf.jcu.cz/~zakkr/

Re: to_ascii function

From
Halley Pacheco de Oliveira
Date:
Dear Karel,

The server encoding and the client encoding are
LATIN1. These results are from phpPgAdmin:

This is ok:

select ascii('ª')

ascii
-----
170

select chr(170)

chr
---
ª

select to_ascii(chr(170))

to_ascii
--------
a

But this is not ok!

select ascii('º')

ascii
-----
186

select chr(186)

chr
---
º

select to_ascii(chr(186))

to_ascii
--------


select ascii(to_ascii(chr(186)))

ascii
-----
32

I think that if to_ascii of ª (170) is a, then
to_ascii of º (186) should be o, and not space.

Halley
 --- Karel Zak <zakkr@zf.jcu.cz> escreveu: > On Sat,
Jun 05, 2004 at 10:39:15AM -0300, Halley
> Pacheco de Oliveira wrote:
> > This query didn't work as I was expecting. Any
> reasons
> > for that ?
> >
> > SELECT TO_ASCII('ÁÉÍÓÚáéíóú??°')
> >
> > result -> 'AEIOUaeioua  '
> >
> > I used psql, java and phpPgAdmin without success.
> >
> > (PostgreSQL 7.4.2 encoding latin1)
>
>  Are all chars  in your query LATIN1  symbols and
> are you  sure that all
>  used  chars  have counterpart  in  ASCII? For  this
> to_ascii()  support
>  LATIN1, LATIN2  and WIN1250 only. I'm  not sure if
> there is a  way how
>  convert others special chars (for example some
> Asiatic encodings).
>
>  # show server_encoding;
>  server_encoding
>  -----------------
>  LATIN1
>
>  # show client_encoding;
>  client_encoding
>  -----------------
>  LATIN1
>
>  # SELECT '>>' || TO_ASCII('ÁÉÍÓÚáéíóú??°') || '<<';
>      ?column?
>  -------------------
>  >>AEIOUaeiou?? <<
>
>
>  The last char  in the string is dec 176 (hex 0xB0).
> Which  char do you
>  expect after conversion to ASCII (0-127)?
>
>     Karel
>
> --
>  Karel Zak  <zakkr@zf.jcu.cz>
>  http://home.zf.jcu.cz/~zakkr/


______________________________________________________________________

Participe da pesquisa global sobre o Yahoo! Mail:
http://br.surveys.yahoo.com/global_mail_survey_br