1.源码实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
#include <locale.h>
int char_to_wchar(wchar_t *pDest, const char *pSrc)
{
int len = 0;
int ret = 0;
len = strlen(pSrc) + 1;
if(len <= 1)
return 0;
ret = mbstowcs(pDest, pSrc, len);
return ret;
}
int wchar_to_char(char *pDest, const wchar_t *pSrc)
{
int len = 0;
int ret = 0;
len = wcslen(pSrc) + 1;
if(len <= 1)
return 0;
ret = wcstombs(pDest, pSrc, len*sizeof(wchar_t));
return ret;
}
int main()
{
char a[64] = "你好,世界";
wchar_t b[64];
char c[64];
memset(b, 0x00, sizeof(b));
memset(c, 0x00, sizeof(c));
setlocale(LC_CTYPE, "zh_CN.utf8");
char_to_wchar(b, a);
wchar_to_char(c, b);
printf("%s\n", c);
return 0;
}
2.编译源码
$ gcc -o example example.c
3.运行及其结果
$ ./example
你好,世界
网友评论