diff --git a/utf8.c b/utf8.c new file mode 100644 --- /dev/null +++ b/utf8.c @@ -0,0 +1,44 @@ +/** + * $Id: utf8.c,v 1.1.1.1 2008-04-28 17:32:53 mbroeker Exp $ + * $Source: /development/c/demos/utf8.c,v $ + * + */ + +#include +#include +#include +#include + +#ifndef u_char +typedef unsigned char u_char; +#endif + +int main () +{ + char dest[4]; + + wchar_t *str = L"Unicode Example with german umlauts: ÄÖÜäöü߀\n"; + + if (!setlocale (LC_CTYPE, "")) { + perror ("SETLOCALE"); + return EXIT_FAILURE; + } + + printf ("%ls", str); + + while (*str != '\n') { + dest[0] = 0; + dest[1] = 0; + dest[2] = 0; + dest[3] = 0; + if (wctomb (dest, (*str)) == -1) + return -1; + + printf ("%lc -> [%4X] (%2X:%2X:%2X:%2X)\n", + *str, *str, (u_char) dest[0], (u_char) dest[1], (u_char) dest[2], (u_char) dest[3]); + str++; + } + + printf ("DIFF: %d : 0x%2X\n", 0x40, 0x40); + return 0; +}