在Windows编程中,经常会碰到字符串之间的转换,char*转LPCWSTR也是其中一个比较常见的转换。下面就列出几种比较常用的转换方法。

1、通过MultiByteToWideChar函数转换

MultiByteToWideChar函数是将多字节转换为宽字节的一个API函数,它的原型如下:

int MultiByteToWideChar(
  UINT CodePage,         // code page
  DWORD dwFlags,         // character-type options
  LPCSTR lpMultiByteStr, // string to map
  int cbMultiByte,       // number of bytes in string
  LPWSTR lpWideCharStr,  // wide-character buffer
  int cchWideChar        // size of buffer
);

LPCWSTR实际上也是CONST WCHAR *类型

char* szStr = "测试字符串";
    WCHAR wszClassName[256];
    memset(wszClassName,0,sizeof(wszClassName));
    MultiByteToWideChar(CP_ACP,0,szStr,strlen(szStr)+1,wszClassName,
        sizeof(wszClassName)/sizeof(wszClassName[0]));

2、通过T2W转换宏

char* szStr = "测试字符串";     
    CString str = CString(szStr);
    USES_CONVERSION;
    LPCWSTR wszClassName = new WCHAR[str.GetLength()+1];
    wcscpy((LPTSTR)wszClassName,T2W((LPTSTR)str.GetBuffer(NULL)));
    str.ReleaseBuffer();

3、通过A2CW转换

char* szStr = "测试字符串";     
    CString str = CString(szStr);
    USES_CONVERSION;
    LPCWSTR wszClassName = A2CW(W2A(str));
    str.ReleaseBuffer();

char*转LPCWSTR Unicode编码相关推荐

  1. char类型和Unicode编码

    [0]README 0.1)本文对 char类型和Unicode编码 的总结并不完整,仅供参考: 0.2)本文获取Unicode辅助字符的代码点的idea转自:  http://blog.csdn.n ...

  2. Java中char类型与Unicode编码

    char是字符型,在Java中规定为2个字节.同样地,目前全球通用的字符集编码Unicode码,最常见的也是用2个字节表示字符. 其实,Java中可以通过字符型和整型的相互强制类型转换,实现由字符得出 ...

  3. java char unicode_在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用______字节内存空间,这样,无论是中文_搜题易...

    下列程序的功能是:输入一个姓名,程序运行后,输出"姓名Welcome you!".例如,输出"张三Welcome you!".请在下面横线处填入正确的方法名,使 ...

  4. 打包解包模块总结:VS2010中默认的编码是Unicode编码

    我把vc6.0上运行没有问题的代码挪到vs2010上,出现了一系列问题. 其根本原因是两种编译器默认编码不一样,vc6.0中默认的编码是(多字节)Ascii编码,VS2010中默认的编码是Unicod ...

  5. Ansi与Unicode编码

    视频教程: Ansi与Unicode编码 大家在编程时经常遇到的数据类型: ● Ansi: char   代表一个字符  (CHAR) char *  代表一个字符串指针   (PCHAR    PS ...

  6. 不能从const char *转换为LPCWSTR --VS经常碰到

    不能从const char *转换为LPCWSTR 在VC 6.0中编译成功的项目在VS2005 vs2005.vs2008.vs2010中常会出现类型错误. 经常出现的错误是:不能从const ch ...

  7. Unicode编码与C语言宽字符

    文章目录 1.ASCII.ANSI.Unicode都是什么? 2.为什么需要宽字符? 3.C语言如何处理宽字符? 4.Windows中的字符串函数 1.ASCII.ANSI.Unicode都是什么? ...

  8. js中将 整数转成字符,,将unicode 编码后的字符还原出来的方法。

    一.将整数转成字符: String.fromCharCode(17496>>8,17496&0xFF,19504>>8,19504&0xFF,12848> ...

  9. jmeter响应数据Unicode编码转换为汉字

    2018-07-09     10:24:34 每次用jmeter做接口测试时,响应信息中文总是显示Unicode编码格式,每次都要在网上寻找这一段转换的代码,但是我发现在网上找这段代码有点麻烦,像我 ...

最新文章

  1. 超级挂载 实现过程-代码
  2. 只因为离职报告多写这三个字,员工竟然倒赔公司2.9万!
  3. Android开发之Fragment与Activity的数据交互通过回调机制实现(源代码分享)
  4. Spring Security 实战干货: RBAC权限控制概念的理解
  5. html将页面分成三块_导航渲染流程你真的知道从输入URL到页面展示发生了什么吗?(内附思维导图)...
  6. mysql优化之连接优化(open-files-limit与table_open_cache)
  7. java多线程中几个常用的方法
  8. php 忽略加载动态某个目录,限定某个目录禁止解析php 、限制user_agent 、php的配制文件、PHP的动态扩展模块...
  9. [专栏精选]Unity中的Git最佳实践
  10. jquery获取radio值
  11. python怎么读取excel-python对Excel的读取
  12. P4177 [CEOI2008]order
  13. 简述软件黑盒测试的方法,简述什么是黑盒测试方法
  14. 吴恩达深度学习课程第二章第一周编程作业
  15. 计算机二级wpsoffice知识点,2017全国计算机等级考试一级WPS office考试大纲
  16. 2021-10-15
  17. 互联网应用:不以抄袭为耻,但以抄袭为常
  18. 思考方法,程序员生存之道
  19. 【java基础】——一维数组和二维数组存储占用内存大小问题
  20. 高一上计算机思维导图,高一上思维导图

热门文章

  1. XMETA受邀参加迪拜MetaWeek2022,共探元界的发展与未来
  2. 拜读滴滴D8黄轶大神慕课网vue2.0APP教程感想
  3. js中 如何终止foreach循环?
  4. linux磁盘分区合并
  5. PHP中的foreach循环 1
  6. 成都学院计算机,2017年3月成都学院计算机等级考试报名时间(四川)
  7. mysql 分区键_mysql分区
  8. 东方博宜OJ 1462 - 【入门】小明的游泳时间
  9. 亚马逊加入购物车会有排名吗
  10. 原生js实现动态加载js文件?