This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Localization: problems with toupper/tolower transformations of latin characters.
- From: Jan Pfeifer <pfjan at yahoo dot com dot br>
- To: gcc-help at gcc dot gnu dot org
- Date: Sun, 11 Dec 2005 18:33:24 -0200
- Subject: Re: Localization: problems with toupper/tolower transformations of latin characters.
- References: <439C3B7F.2090806@yahoo.com.br>
Just noticed I did something silly. My input is UTF-8, so the latin
characters will be multibyte. The tolower/toupper had no way to know how
to handle it.
So I converted everything to wchar_t, and it worked for both versions.
A got a hint for the C++ version in libstdc++ list: I needed decoupling
the wcout from the underlying stdio (?? I guess that's what
'ios::sync_with_stdio(false);' does).
And in C one needs to use the w-functions: wcslen, wcscpy, towlower,
towupper.
thanks,
- jan
Jan Pfeifer wrote:
>hi all,
>
>I was trying to get propper transformation for upper/lower case
>characters in a generic way, at first in C++, but I noticed that the
>libc is apparently not converting correctly the latin characters.
>
>Running the attached code, that tries the C++ and C functions -- later I
>found out that libstdc++ uses libc for these, I get:
>
>$ ./test
>C++ version:
>Órfão (original string)
>ÓRFãO (should be upper case string)
>Órfão (should be lower case string)
>
>C version:
>Órfão
>ÓRFãO
>Órfão
>
>
>Any ideas about what I could be missing ? Or is the library missing ?
>
>(I tried different locales, as commented in the code, and using UTF-8
>for encoding)
>
>
>thanks in advance for any help/pointers!
>
>- jan
>
>ps.:
>$ gcc --version
>gcc (GCC) 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu9)
>Copyright (C) 2005 Free Software Foundation, Inc.
>This is free software; see the source for copying conditions. There is NO
>warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
>
>
_______________________________________________________
Yahoo! doce lar. Faça do Yahoo! sua homepage.
http://br.yahoo.com/homepageset.html