Re: How to print the byte representation of a wchar_t string with non -ASCII chars?

From: addison@inter-locale.com
Date: Wed Oct 31 2001 - 11:27:15 EST


Dear Will,

Making the assumption for the moment that your platform's wchar_t is
already Unicode, the first problem is that it almost certainly is either
UTF-16 or UTF-32. As a result, the "hex representation" will be of that
encoding and not of your locale's encoding (UTF-8 in this case).

If you want to see the locale encoding, you will need to call
wctombs() and then iterate across the char* you get back from that.

Best Regards,

Addison

===============================================================
Addison P. Phillips Globalization Architect
webMethods, Inc http://www.webmethods.com
Sunnyvale, CA, USA mailto:aphillips@webmethods.com

+1 408.210.3569 (mobile) +1 408.962.5487 (ofc)
===============================================================
"Internationalization is not a feature. It is an architecture."

On Wed, 31 Oct 2001, Tay, William wrote:

> Hi,
>
> For debugging purpose, I'd like to find out how I can print the byte
> representation of a wchar_t string.
>
> Say in C, I have wchar_t wstr[10] = L"fran";
> Is there any printf or wchar equivalent function (using appropriate format
> template) that prints out the string as
> 66 72 C3 A1 6E in en_US.UTF-8 locale under UNIX?
>
> Like for an ASCII char, I can do printf("%x", toasii('a')); to get 61 (the
> byte rep of 'a');
>
> Would appreciate your help.
>
> Will
>
>



This archive was generated by hypermail 2.1.2 : Wed Oct 31 2001 - 13:02:43 EST