中文传输在ubuntu传输的极简单示例程序

// 注意,此文档最好采用utf-8编码
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
#include <stdlib.h>
#include <string.h>

void convert_test(char* src_wstr,wchar_t* dest_str)
{
    setlocale(LC_ALL, "zh_CN.UTF-8");
    //char*    src_str = "中国";
    //wchar_t* src_wstr = L"中国";

    //char*    dest_str = (char *)malloc(32);
    //wchar_t* dest_wstr = (wchar_t*)malloc(32);

    //mbstowcs(src_wstr, dest_str, mbstowcs(NULL, dest_str, 128));

    //wcstombs(dest_str, src_wstr, wcstombs(NULL, src_wstr, 100));

    //free(dest_str);
    //free(dest_wstr);
}

int main()
{
    //此语句重要,在win7 + vs2012和 ubuntu 12.04测试结果一致
    //只要打印wchar_t字符,均加此语句,至少不会出错,此语句最好在程序初始化处
    //setlocale(LC_ALL, "");


    // wprintf和printf最好不能同时使用.
    // 如下使用printf同时打印了char字符串和wchar_t字符串
    // 因此只采用printf是比较好的方法
    //wchar_t ws[] = L"国家";
    //printf("printf content start: %ls\n", ws);
    //printf("content end\n");
    char s[128];
    wchar_t ws[] = L"ah";

    setlocale(LC_ALL, "zh_CN.UTF-8");

    sprintf(s,"%ls",ws);

    printf("123\n");

 


    char dst1[128];
    wchar_t dst2[128];
    memset(dst1,0,128);
    memset(dst2,0,sizeof(wchar_t)*128);


    memcpy(dst1,s,128);


    swprintf(dst2, 128, L"%s", s);
    //swprintf(dst2,"%s",s);
    //convert_test(s,ws);

    printf("abc\n");


    wchar_t abc[32] = {0};
    char ttt[128] = {0};
    printf("size = %d \n",sizeof(abc));
    printf("ttt = %d \n",sizeof(ttt));


    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值