codeset problems in wprintf and wcsftime
Corinna Vinschen
vinschen@redhat.com
Sat Feb 20 16:51:00 GMT 2010
On Feb 20 16:42, Andy Koppe wrote:
> > another alternative to the solutions you outlined
> > might be to store those strings as wchar versions only, to be used
> > directly in wprintf and converted to the LC_CTYPE character set when
> > needed in printf. That way, the user would always get readable output.
> >
> >> - Store the charset not only for LC_CTYPE, but for each localization
> >> Â category, and provide a function to request the charset.
> >> Â This also requires to store the associated multibyte to widechar
> >> Â conversion functions, obviously, and to call the correct functions
> >> Â from wprintf and wcftime.
> >>
> >> - Redefine the locale data structs so that they contain multibyte and
> >> Â widechar representations of all strings. Â Use the multibyte strings
> >> Â in the multibyte functions, the widechar strings in the widechar
> >> Â functions.
>
> Actually, there's a fourth alternative: do nothing.
>
> >From http://www.opengroup.org/onlinepubs/009695399/basedefs/xbd_chap07.html:
> "If different character sets are used by the locale categories, the
> results achieved by an application utilizing these categories are
> undefined."
>
> (So why did they even allow different charsets to be specified for
> different categories!?)
History?
Nevertheless, there are ways to do it better than that.
Corinna
--
Corinna Vinschen
Cygwin Project Co-Leader
Red Hat
More information about the Newlib
mailing list