Обсуждение: problem with to_ascii() function in version 8.3.3
Hi, i have a problem with to_ascii() function in version 8.3.3. I have read Mr. Gonzales's post at http://groups.google.com/group/pgsql.general/browse_thread/thread/f74650e3b3248ff0/9f36fb072ea1dc98?lnk=gst&q=to_ascii#9f36fb072ea1dc98 and he managed to use to_ascii function with following command sequence: create table chartest ( c text); insert into chartest (c) values ('á'); select to_ascii(encode(convert_to(c,'LATIN9'),'escape'),'LATIN9') from chartest; His output was: to_ascii ---------- a but i'm getting: to_ascii ---------- \341 What am I doing wrong? How to_ascii function should be used? Regards Pavel Arnošt
Pavel Arnošt wrote: > i have a problem with to_ascii() function in version 8.3.3. I have read Mr. Gonzales's post at > http://groups.google.com/group/pgsql.general/browse_thread/thread/f74650e3b3248ff0/9f36fb072ea1dc98?lnk=gst&q=to_ascii#9f36fb072ea1dc98 > and he managed to use to_ascii function with following command > sequence: > > create table chartest ( c text); > insert into chartest (c) values ('á'); > select to_ascii(encode(convert_to(c,'LATIN9'),'escape'),'LATIN9') from > chartest; > > His output was: > > to_ascii > ---------- > a > > but i'm getting: > > to_ascii > ---------- > \341 > > What am I doing wrong? How to_ascii function should be used? What answer do you get to the following two SQL statements: SHOW server_encoding; SHOW client_encoding; Maybe that will help to understand. Yours, Laurenz Albe
> What answer do you get to the following two SQL statements: > > SHOW server_encoding; > SHOW client_encoding; > > Maybe that will help to understand. Hi, both commands shows "UTF8". Changing client encoding with "\encoding LATIN9" does not have any effect on to_ascii command (I don't know if it should have). regards Pavel
Pavel Arnošt wrote:
>>> insert into chartest (c) values ('á');
>>> select to_ascii(encode(convert_to(c,'LATIN9'),'escape'),'LATIN9') from chartest;
>>> to_ascii
>>> ----------
>>> \341
>>
>> What answer do you get to the following two SQL statements:
>>
>> SHOW server_encoding;
>> SHOW client_encoding;
>
> both commands shows "UTF8". Changing client encoding with "\encoding
> LATIN9" does not have any effect on to_ascii command (I don't know if
> it should have).
Strange; I have the same settings and it works here.
Could you run the following queries and compare with my results:
test=> select ascii(c) from chartest;
ascii
-------
225
(1 row)
test=> select encode(convert_to(c,'LATIN9'),'hex') from chartest;
encode
--------
e1
(1 row)
test=> select ascii(to_ascii(encode(convert_to(c,'LATIN9'),'escape'),'LATIN9')) from chartest;
ascii
-------
97
(1 row)
Yours,
Laurenz Albe
> Could you run the following queries and compare with my results:
>
> test=> select ascii(c) from chartest;
> ascii
> -------
> 225
> (1 row)
>
> test=> select encode(convert_to(c,'LATIN9'),'hex') from chartest;
> encode
> --------
> e1
> (1 row)
>
> test=> select ascii(to_ascii(encode(convert_to(c,'LATIN9'),'escape'),'LATIN9')) from chartest;
> ascii
> -------
> 97
> (1 row)
It gives me:
ascii
-------
225
encode
--------
e1
ascii
-------
92
So the last command have different output. Strange.
regards
Pavel