MultiByteToWideChar, WideCharToMultiByte
MultiByteToWideChar
const UINT codePage = 936; // GB 2312. CCHAR *multiByteString = "源字符串abcd"; // First: get count of multi-byte string. const DWORD cCh = MultiByteToWideChar(codePage, // Character Page. 0, // Flag, always be 0. multiByteString, // Multi-byte string. -1, // '-1' is to determind length automatically. NULL, // 'NULL' means ignore result. This is based // on next argument is '0'. 0); // '0' is to get the count of character needed // instead of to translate. // Second: allocate enough memory to save result in wide character. PWCHAR pWideCharString = new WCHAR[cCh]; ZeroMemory(pWideCharString, cCh * sizeof(pWideCharString[0])); // Third: Translate it! MultiByteToWideChar(codePage, // Character Page. 0, // Flag, always be 0. multiByteString, // Multi-byte string. -1, // Count of character of string above. pWideCharString, // Target wide character buffer. cCh); // Count of character of wide character string buffer. // Fourth: use it! // ... // Fifth: deallocate the memory. delete pWideCharString; pWideCharString = NULL;
WideCharToMultiByte
const UINT codePage = 936; // GB 2312. WCHAR *wideCharString = L"源字符串abcd"; // First: get count. const DWORD cCh = WideCharToMultiByte(codePage, 0, wideCharString, -1, NULL, 0, NULL, // When the wide character to be traslated // is not in code page, proc will use this // variable to fill with. We usually set it // to NULL. NULL); // This variable will save the number of // character which can't be tranlated. We // usually set it to NULL. // Second: allocate enough memory to save result. PCHAR pMultiByteString = new CHAR[cCh]; ZeroMemory(pMultiByteString, cCh * sizeof(pMultiByteString[0])); // Third: Translate it! WideCharToMultiByte(codePage, 0, wideCharString, -1, pMultiByteString, cCh, NULL, NULL); // Fourth: use it! // ... // Fifth: deallocate the memory. delete pMultiByteString; pMultiByteString = NULL;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!
· 用 C# 插值字符串处理器写一个 sscanf