#include <stdio.h>
#include <wchar.h>
#include <locale.h>
#include <string.h>
#include <stdlib.h>
// LANG=zh_CN
//#define MB_CUR_MAX 1024
char *string = "测试Locale的软件!";
int main()
{
int i, l, length;
char *ptr;
char cbuf[128];
wchar_t wcbuf[128];
setlocale(LC_ALL, "");
printf("MB_CUR_MAX %d/n", MB_CUR_MAX);
length = strlen(string);
printf("string %s, length %d/n", string, length);
/* mbstowcs() */
l = mbstowcs(wcbuf, string, 128);
printf("mbstowcs() -> num %d,", l);
for (i = 0; i < l; i++)
{
printf(" %x", wcbuf);
}
printf("/n");
/* wcstombs() */
l = wcstombs(cbuf, wcbuf, 128);
printf("wcstombs() -> length %d, %s/n", l, cbuf);
/* mblen() check */
for (ptr = string; *ptr; )
{
l = mblen(ptr, length);
mbtowc(wcbuf, ptr, length);
printf("ptr %s, mblen %d, wchar %x/n", ptr, l, wcbuf[0]);
if (l <= 0)
{
break;
}
ptr += l;
}
return 0 ;
}
//end
#include <wchar.h>
#include <locale.h>
#include <string.h>
#include <stdlib.h>
// LANG=zh_CN
//#define MB_CUR_MAX 1024
char *string = "测试Locale的软件!";
int main()
{
int i, l, length;
char *ptr;
char cbuf[128];
wchar_t wcbuf[128];
setlocale(LC_ALL, "");
printf("MB_CUR_MAX %d/n", MB_CUR_MAX);
length = strlen(string);
printf("string %s, length %d/n", string, length);
/* mbstowcs() */
l = mbstowcs(wcbuf, string, 128);
printf("mbstowcs() -> num %d,", l);
for (i = 0; i < l; i++)
{
printf(" %x", wcbuf);
}
printf("/n");
/* wcstombs() */
l = wcstombs(cbuf, wcbuf, 128);
printf("wcstombs() -> length %d, %s/n", l, cbuf);
/* mblen() check */
for (ptr = string; *ptr; )
{
l = mblen(ptr, length);
mbtowc(wcbuf, ptr, length);
printf("ptr %s, mblen %d, wchar %x/n", ptr, l, wcbuf[0]);
if (l <= 0)
{
break;
}
ptr += l;
}
return 0 ;
}
//end