在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. 最简单的iOS网络请求
  2. iOS 10、Xcode 8 遇到部分问题解决记录(包括控制台日志不输出)
  3. 算法训练营04-map,set,dequeue,stack
  4. 使用 Label 类在 XNA 中显示文本,WPXNA(七)
  5. 如何查看oracle用户级别,用户级别的Oracle 导入导出
  6. 【小技巧】桌面图标出现蓝色问号的怎么办?
  7. linux dns 问题吗,Linux下DNS的问题
  8. Linux 音频驱动
  9. 查看linux cpu负载均衡,关于linux内核cpu进程的负载均衡
  10. java web对cpu要求_java web服务器cpu占用过高 (转载)
  11. Go语言实战(一)环境配置
  12. 智能门锁电路图_智能门锁结构拆解,我们一起来看看
  13. 脑子里想的是A,嘴巴上说的是B,实际上做的是C,幻想前景远大的是D,可真正赚钱的恰恰却是E...
  14. h5 页面唤起微信和qq
  15. C语言程序设计入门——平均值
  16. Android Studio连接手机设备教程(完全步骤)
  17. 数控编程必备神器!Mastercam 2021让你的加工更高效更精准!
  18. 众享比特参编 | 《Web3.0前瞻研究报告(2022年)》发布及解读,附下载方式
  19. Hive 正则表达式 判断字符串是否是数字(整数)
  20. 母函数——整数拆分(HDOJ2152)

热门文章

  1. 你的数字人处在哪个阶段?
  2. 【实用】Linux系统知识小汇
  3. python之数据库的简单交互
  4. 宝塔面板修改mysql端口号
  5. RTSP基础入门学习
  6. SM2 (国密算法)实例
  7. git 拉取远程分支
  8. 9、MAC 地址(单播、组播、广播地址分类)
  9. Python 入门之元组与字典
  10. 雷电模拟器常见问题处理