具体代码是:
#include <stdio.h>#include <stdlib.h>#include <wchar.h>#include <locale.h>int char2wchar(char* pSrc, wchar_t* pDest){if (pSrc == NULL || pDest == NULL){return 0;}setlocale(LC_CTYPE, "zh_CN.utf8");int w_size = mbstowcs(NULL, pSrc, 0) + 1;//w_size=0说明出错了。可能有非法字符,也可能是locale设置不对。if (w_size == 0){return -1;}int ret = mbstowcs(pDest, pSrc, strlen(pSrc)+1);if (ret <= 0){return -1;}return w_size;}int main(){wchar_t wstr[32]= {0};char* source = "泰山";int count = char2wchar(source, &(wstr[0]));}