多字节字符串与宽字节字符串的相互转化
来源:互联网 发布:央视财经频道网络直播 编辑:程序博客网 时间:2024/05/29 15:56
我们有时在程序设计中,可能需要多字节字符串和宽字节字符串之间进行相互的转化,一般来说有两种API;
一,C API: mbstowcs,wcstombs; 示例程序如下:
#include <stdio.h>#include <Windows.h>//wchar转化为charchar* wcharTochar(wchar_t *src){int len=wcslen(src);char *dest = new char[len+1];ZeroMemory(dest,len+1);wcstombs( dest, src, len );return dest;}//char转化为wcharwchar_t* charTowchar(char *src){int len=strlen(src);wchar_t *dest = new wchar_t[len+1];ZeroMemory(dest,2*len+2);mbstowcs(dest,src,len);return dest;}void main(){wchar_t* wcharStr=L"hello world!";char* asciiStr=wcharTochar(wcharStr);printf("%s\n",asciiStr);delete[] asciiStr;char *charStr="welcome!";wchar_t *wcharStr2=charTowchar(charStr);printf("%S",wcharStr2);printf("\n");delete[] wcharStr2;}
二,WIN32 API :WideCharToMultiByte和MultiByteToWideChar ;示例代码如下
1,宽字节转化为多字节
wchar_t* wcs = L"中国,你好!I Love You!";int lengthOfMbs = WideCharToMultiByte( CP_ACP, 0, wcs, -1, NULL, 0, NULL, NULL);char* mbs = new char[ lengthOfMbs ];WideCharToMultiByte( CP_ACP, 0, wcs, -1, mbs, lengthOfMbs, NULL, NULL); printf("%s\n",mbs);delete[] mbs;
2,多字节转化为宽字节
char* mbs = "I Love You!";int lengthOfWcs = MultiByteToWideChar( CP_ACP, 0, mbs, -1, NULL, 0 );wchar_t* wcs = new wchar_t[lengthOfWcs];MultiByteToWideChar( CP_ACP, 0, mbs, -1, wcs, lengthOfWcs );delete[] wcs;
参考:http://blog.csdn.net/waterathena/article/details/3767588
- 多字节字符串与宽字节字符串的相互转化
- 多字节与宽字节字符串的相互转换
- 多字节与宽字节字符串 的相互转换
- 字符串:多字节与宽字节转换
- 宽字节字符串多字节字符串转换
- 一个从单字节字符串转化成多字节字符串的函数
- 把CString内的单字节字符串转化成多字节字符串
- strlen函数与多字节编码的字符串字节长度
- 多字节与宽字节相互转换的方法
- 多字节与宽字节相互转换的方法
- c++多字节与宽字节字符串转换(windows平台)
- c++多字节与宽字节字符串转换(windows平台)
- c++多字节与宽字节字符串转换(windows平台)
- 宽字节转化多字节 .
- 宽字符串与多字节字符串
- VC多字节字符串和宽字节字符串转换
- 多字节字符串和宽字节字符串互转
- 多字节字符串转宽字节字符串(windows)
- Jquery validate验证时候能使用ID进行验证么
- 在 Oracle 中根据经纬度计算两地之间的距离
- 网站优化(提高网站访问量)
- 有关jquery插件Flexigrid的问题
- 操作系统基本知识
- 多字节字符串与宽字节字符串的相互转化
- svn中出现各种感叹号说明
- ffmpeg在windows的编译以及测试
- DropDownList控件和GridView控件
- 内核中的UDP socket流程(7)——udp_sendmsg
- Use of @OneToMany or @ManyToMany targeting an unmapped class
- 高数思维导图
- ok6410 u-boot-2012.04.01移植二修改源码支持单板
- 排座位(安排:3个A国人,3个B国人,3个C国人坐成一排。)