自己记录下,多字节转换到宽字节.

本文介绍了一个用于将ANSI字符串转换为Unicode字符串的C/C++函数实现。该函数首先计算所需的Unicode字符数量,然后使用MultiByteToWideChar函数完成转换。适用于需要在不同编码间进行字符串转换的开发人员。
  1. LPWSTR ConvertAnsiToUnicode(LPCSTR szAnsi, LPWSTR szUnicode=NULL, size_t dwUnicodeLen=0)
  2. {
  3.     LPWSTR  szCvt = szUnicode;
  4.     size_t  dwAnsiLen = 0;
  5.     for(size_t i=0;i<strlen(szAnsi);i++)
  6.     {
  7.         if(szAnsi[i] < 0)
  8.         {
  9.             dwAnsiLen++;
  10.             i++;
  11.             continue;
  12.         }
  13.         else
  14.         {
  15.             dwAnsiLen++;
  16.         }
  17.     }
  18.     if(szCvt == NULL)
  19.     {
  20.         szCvt = new WCHAR[dwAnsiLen+1];
  21.     }
  22.     ::MultiByteToWideChar(CP_ACP,0,szAnsi,strlen(szAnsi),szCvt,dwAnsiLen+1);
  23.     szCvt[szUnicode?(dwUnicodeLen>dwAnsiLen?dwAnsiLen:dwUnicodeLen):dwAnsiLen] = 0;
  24.     return szCvt;
  25. }
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值