wchar中的汉字转换为char

1、函数 WideCharToMultiByte(),转换 UNICODE 到 MBCS。使用范例:

      LPCOLESTR lpw = L"Hello,你好";
      size_t wLen = wcslen( lpw ) + 1;  // 宽字符字符长度,+1表示包含字符串结束符
      
      int aLen=WideCharToMultiByte(  // 第一次调用,计算所需 MBCS 字符串字节长度
  CP_ACP,
  0,
  lpw,  // 宽字符串指针
  wLen, // 字符长度
  NULL,
  0,  // 参数0表示计算转换后的字符空间
  NULL,
  NULL);
 
      LPSTR lpa = new char [aLen];
 
      WideCharToMultiByte(
  CP_ACP,
  0,
  lpw,
  wLen,
  lpa,  // 转换后的字符串指针
  aLen, // 给出空间大小
  NULL,
  NULL);

      // 此时,lpa 中保存着转换后的 MBCS 字符串
      ... ... ... ...
      delete [] lpa;

    2、函数 MultiByteToWideChar(),转换 MBCS 到 UNICODE。使用范例:      LPCSTR lpa = "Hello,你好";
      size_t aLen = strlen( lpa ) + 1;
      
      int wLen = MultiByteToWideChar(
  CP_ACP,
  0,
  lpa,
  aLen,
  NULL,
  0);
      
      LPOLESTR lpw = new WCHAR [wLen];
      MultiByteToWideChar(
  CP_ACP,
  0,
  lpa,
  aLen,
  lpw,
  wLen);
      ... ... ... ...
      delete [] lpw; 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值