UTF oddity
Eric Pouech
pouech-eric at wanadoo.fr
Thu May 8 12:42:06 CDT 2003
Jan Sporbeck wrote:
> Hallo,
>
> while porting a friends windows code, i encountered the following:
>
> WideCharToMultiByte returns incorrect string length when using CP_UTF8
> for conversion
>
> the following code snippet correctly sets nLen1 to 2 but sets nLen2 only
> to 1
>
> int nLen1 = WideCharToMultiByte(CP_UTF8, 0, L"Ü", 1, NULL, 0, NULL, NULL);
> // query buffer size
> int nLen2 = WideCharToMultiByte(CP_UTF8, 0, L"Ü", 1, szUtf, nLen1, NULL,
> NULL);
> // do conversion
>
>
> I tested this with Wine <=20030408
>
> am I missing something?
the L"" constructs are not yet supported while porting code (which I
assume you're doing)
if you're using a recent gcc, try using the -fshort-wchar option (in
gcc), it might help
(for a bit of explanation, unicode strings are stored as unsigned short
in Windows, and by default, unsigned long by gcc, hence some issues)
A+
--
Eric Pouech
More information about the wine-devel
mailing list