Nicolas,

OK.  I don't know exactly what I'm talking about here as you can see. :)

I'm writing an XML parser/writer/simple DOM, which will input and output
primarily in UTF-32.

This program outputs some information to stdout in the testing process,
and this is also UTF-32 (internally a character is an integer >= 32 bits).

I tried now to use putwchar:

    putwchar((wchar_t) buffer[index]);

And the output is the same as if had used

     printf("%c", (char) buffer[index]);

That is, non-ASCII characters are garbled.

All the locale settings except LC_ALL are en_US.UTF-8, LC_ALL is empty.

What I'm looking for is a cross-platform way to output some data, to aid
in the testing process.  Reading and writing from files will probably be
binary and handled internally in the program.

-Morten

On Sun, Nov 29, 2015 at 4:04 PM, Nicolas George <geo...@nsup.org> wrote:

> Le nonidi 9 frimaire, an CCXXIV, Morten W. Petersen a écrit :
> > I was looking for a locale that would enable me to putwchar a 32-bit
> > Unicode character to stdout and have things handled correctly,
> > automatically.  Without any re-encoding to UTF-8 and so on.
>
> I do not know what your program is about, but what you are asking seems to
> me like a very bad idea.
>
> You should use putwchar() if you WANT automatic recoding to the current
> locale, transparently and for any locale, as long as the character is
> possible.
>
> On the other hand, if as you say you do not want automatic recoding, then
> you should use octet-based output functions: serialize your Unicode code
> point to little or big endian as you prefer and use putchar() or fwrite()
> to
> send it.
>
> Note that wchar_t are Unicode code point under GNU but that is neither
> guaranteed nor portable. Personally, I recommend not to use wchar_t
> entirely.
>
> Regards,
>
> --
>   Nicolas George
>



-- 
Twittering at http://twitter.com/blogologue
Blogging at http://blogologue.com
Playing music at https://soundcloud.com/morten-w-petersen
Also playing music and podcasting here:
http://www.mixcloud.com/morten-w-petersen/
On Google+ here https://plus.google.com/107781930037068750156
On Instagram at https://instagram.com/morphexx/

Reply via email to