美文网首页
linux c中char和wchar_t互转

linux c中char和wchar_t互转

作者: 一路向后 | 来源:发表于2021-01-21 21:59 被阅读0次

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
你好,世界

相关文章

网友评论

      本文标题:linux c中char和wchar_t互转

      本文链接:https://www.haomeiwen.com/subject/gsqjzktx.html