Обсуждение: BUG #1478: Upper function does not work

Поиск
Список
Период
Сортировка

BUG #1478: Upper function does not work

От
"Tiago Magalhães Vieira"
Дата:
The following bug has been logged online:

Bug reference:      1478
Logged by:          Tiago Magalhães Vieira
Email address:      tiago.vieira@gmail.com
PostgreSQL version: 8.0.0-rc5
Operating system:   Windows XP
Description:        Upper function does not work
Details:

I have been experiencing some problems with the uppercase function, when the
function has to make simple chars like 'c','a' etc it returns them in
uppercase, but when it has to handle chars like 'á', 'é', 'ç' it does not
do so.

For example I have a field named 'med_type' in the table 'test' and one of
this data in the field 'med_type' is 'Nutrição'. Then I make the query:

SELECT upper(med_type) FROM test;

It returns:

'NUTRIçãO'

Even changed de characters enconding from UNICODE to ASCII and the problem
still happens.

Is this a bug or am I doing something wrong.

Thanks in advance.

Re: BUG #1478: Upper function does not work

От
"Magnus Hagander"
Дата:
> Bug reference:      1478
> Logged by:          Tiago Magalh=C3=A3es Vieira
> Email address:      tiago.vieira@gmail.com
> PostgreSQL version: 8.0.0-rc5
> Operating system:   Windows XP
> Description:        Upper function does not work
> Details:=20
>=20
> I have been experiencing some problems with the uppercase=20
> function, when the function has to make simple chars like=20
> 'c','a' etc it returns them in uppercase, but when it has to=20
> handle chars like '=C3=A1', '=C3=A9', '=C3=A7' it does not do so.=20
>=20
> For example I have a field named 'med_type' in the table=20
> 'test' and one of this data in the field 'med_type' is=20
> 'Nutri=C3=A7=C3=A3o'. Then I make the query:
>=20
> SELECT upper(med_type) FROM test;
>=20
> It returns:
>=20
> 'NUTRI=C3=A7=C3=A3O'
>=20
> Even changed de characters enconding from UNICODE to ASCII=20
> and the problem still happens.
>=20
> Is this a bug or am I doing something wrong.

UNICODE is not supported on Win32.
ASCII does not know how to handle those characters.

You need to pick the correct encoding for these characters. Make sure you s=
et the correct locale as well.

Also, you really should upgrade to the release version.

//Magnus