- LPWSTR ConvertAnsiToUnicode(LPCSTR szAnsi, LPWSTR szUnicode=NULL, size_t dwUnicodeLen=0)
- {
- LPWSTR szCvt = szUnicode;
- size_t dwAnsiLen = 0;
- for(size_t i=0;i<strlen(szAnsi);i++)
- {
- if(szAnsi[i] < 0)
- {
- dwAnsiLen++;
- i++;
- continue;
- }
- else
- {
- dwAnsiLen++;
- }
- }
- if(szCvt == NULL)
- {
- szCvt = new WCHAR[dwAnsiLen+1];
- }
- ::MultiByteToWideChar(CP_ACP,0,szAnsi,strlen(szAnsi),szCvt,dwAnsiLen+1);
- szCvt[szUnicode?(dwUnicodeLen>dwAnsiLen?dwAnsiLen:dwUnicodeLen):dwAnsiLen] = 0;
- return szCvt;
- }
自己记录下,多字节转换到宽字节.
本文介绍了一个用于将ANSI字符串转换为Unicode字符串的C/C++函数实现。该函数首先计算所需的Unicode字符数量,然后使用MultiByteToWideChar函数完成转换。适用于需要在不同编码间进行字符串转换的开发人员。

被折叠的 条评论
为什么被折叠?



