多字节字符串转宽字节字符串(windows)
来源:互联网 发布:软件编写入门 编辑:程序博客网 时间:2024/06/15 01:53
windows函数 MultiByteToWideChar提供将多字节字符串转换为宽字节字符串的功能(参考windows核心编程2.8)。
int MultiByteToWideChar(
UINT uCodePage,
DWORD dwFlags,
PCSTR pMultiByteStr,
int cbMultiByte,
PWSTR pWideCharStr,
int cchWideChar);
uCodePage标识与多字节字符关联的代码页值(个人理解指当前多字节的编码格式)。
dwFlags提供一些额外的标识,这里写0.
pMultiByteStr指定要转换的字符串。
cbMultiByte指定字符串的长度(传入-1,函数可自动判断源字符串长度)。
pWideCharStr转换所得宽字节字符串的内存地址。
cchWideChar宽字节字符串的长度(传入0函数不会执行,而是返回一个宽字节数包括终止符‘\0’)。
操作步骤:
1.调用MultiByteToWideChar,为pWideCharStr 传入NULL,cchWideChar传入0,cbMultiByte传入-1,得到要转换宽字节字符数count。
2.申请长度为count*sizeof(wchar_t)的内存空间,用于存放转换的宽字节字符串。
3.再次调用MultiByteToWideChar,传入指定的参数,便可获取转换完的宽字节字符串。
4.释放申请的内存块。
参考代码:
string strRet = GetStr(pszTable, pszField, id);
int len = MultiByteToWideChar(CP_UTF8, 0, strRet.c_str(), -1, NULL, 0);
wchar_t* wstr = new wchar_t[len];
len *= sizeof(wchar_t);
memset(wstr, 0, len);
MultiByteToWideChar(CP_UTF8, 0, strRet.c_str(), -1, wstr, len);
delete wstr;
wstr = nullptr;
- 多字节字符串转宽字节字符串(windows)
- 宽字节字符串多字节字符串转换
- c++多字节与宽字节字符串转换(windows平台)
- c++多字节与宽字节字符串转换(windows平台)
- c++多字节与宽字节字符串转换(windows平台)
- 多字节字符串和宽字节字符串互转
- 字符串:多字节与宽字节转换
- wchar_t*转char*(宽字节字符串转多字节字符串)
- VC多字节字符串和宽字节字符串转换
- 多字节字符串与宽字节字符串的相互转化
- 《Windows API》多字节字符串转宽字符
- 多字节与宽字节字符串的相互转换
- 多字节与宽字节字符串 的相互转换
- 宽字符串与多字节字符串
- Windows程序设计--宽字节和多字节
- strlen函数与多字节编码的字符串字节长度
- A2W和W2A :很好的多字节和宽字节字符串的转换宏
- A2W和W2A :很好的多字节和宽字节字符串的转换宏
- echarts 柱状图 固定柱宽 最大宽度
- shell 脚本之文本处理
- Javamail发送邮件
- DB2数据库创建用户及授权(解决C#程序进行select、insert等操作无权限问题)
- 解释为什么Spring 默认会加载/WEB-INF/applicationContext.xml
- 多字节字符串转宽字节字符串(windows)
- onInterceptTouchEvent和onTouchEvent调用时序
- 投资人身份不严谨的投融资服务平台
- git在linux的使用心得
- C++设计模式之AbstractFactory抽象工厂模式.txt
- 康拓展开 之 我排第几个
- c++设计模式之Adapter适配器模式.txt
- 浏览器 HTTP 协议缓存机制详解
- 关于pyhton多线程的相关知识集合