绝对正确绝对全的TCHAR和char的转换以及字符编码转换
来源:互联网 发布:今年欧文总决赛数据 编辑:程序博客网 时间:2024/06/08 08:17
TCHAR转为char
没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时候包含了UNICODE定义,就必须对TCHAR和char进行转换。
首先是把TCHAR转为char
[cpp] view plaincopyprint?
//将TCHAR转为char
//*tchar是TCHAR类型指针,*_char是char类型指针
TcharToChar (const TCHAR * tchar, char * _char)
{
int iLength ;
//获取字节长度
iLength = WideCharToMultiByte(CP_ACP, 0, pm_pcData, -1, NULL, 0, NULL, NULL);
//将tchar值赋给_char
char * pm_pcData2A = new char [iLength] ;
WideCharToMultiByte(CP_ACP, 0, pm_pcData, -1, pm_pcData2A, iLength, NULL, NULL);
if ( NULL != pm_pcData2A )
{
delete pm_pcData2A;
pm_pcData2A = NULL;
}
}
然后是把char转为TCHAR
[cpp] view plaincopyprint?
//同上
CharToTchar (const char * _char, TCHAR * tchar)
{
int iLength ;
iLength = MultiByteToWideChar (CP_ACP, 0, _char, strlen (_char) + 1, NULL, 0) ;
MultiByteToWideChar (CP_ACP, 0, _char, strlen (_char) + 1, tchar, iLength) ;
}
其实还有就是.......
CString lv_strTemp;
char lv_chTemp[10];
lv_strTemp.Format(_TEXT("%S"),lv_chTemp);
非常注意:!!!!!!!!!
在类内部声明的变量最好按顺序使用_cscpy();之类的函数,不然会改变上一个内部的值,会发生奇怪的事情
没有定义UNICODE,所以它里面的字符串就是简单用" "就行了,创建工程的时候包含了UNICODE定义,就必须对TCHAR和char进行转换。
首先是把TCHAR转为char
[cpp] view plaincopyprint?
//将TCHAR转为char
//*tchar是TCHAR类型指针,*_char是char类型指针
TcharToChar (const TCHAR * tchar, char * _char)
{
int iLength ;
//获取字节长度
iLength = WideCharToMultiByte(CP_ACP, 0, pm_pcData, -1, NULL, 0, NULL, NULL);
//将tchar值赋给_char
char * pm_pcData2A = new char [iLength] ;
WideCharToMultiByte(CP_ACP, 0, pm_pcData, -1, pm_pcData2A, iLength, NULL, NULL);
if ( NULL != pm_pcData2A )
{
delete pm_pcData2A;
pm_pcData2A = NULL;
}
}
然后是把char转为TCHAR
[cpp] view plaincopyprint?
//同上
CharToTchar (const char * _char, TCHAR * tchar)
{
int iLength ;
iLength = MultiByteToWideChar (CP_ACP, 0, _char, strlen (_char) + 1, NULL, 0) ;
MultiByteToWideChar (CP_ACP, 0, _char, strlen (_char) + 1, tchar, iLength) ;
}
而且,字符编码的转换也可以用这两个函数的哦,只需改动函数第一个参数即可
其实还有就是.......
CString lv_strTemp;
char lv_chTemp[10];
lv_strTemp.Format(_TEXT("%S"),lv_chTemp);
还有最简单的(一般不说的,嘿嘿)
#include <atlbase.h>//记得包含头文件
TCHAR *lv_DataTemp;
USES_CONVERSION;
lv_DataTemp = A2T(lv_pRecordDataTemp->v_pcData);
就是TCHAR* = A2T(char*); 和 char* = T2A(TCHAR*); 记得在调用之前一定要加上USES_CONVERSION;(初始化宏),经常有人调用编译错误就是没加这个
非常注意:!!!!!!!!!
在类内部声明的变量最好按顺序使用_cscpy();之类的函数,不然会改变上一个内部的值,会发生奇怪的事情
- 绝对正确绝对全的TCHAR和char的转换以及字符编码转换
- Tchar 和 char 之间的转换
- TCHAR和CHAR间的互相转换
- VS 字符编码类型转换 (wchar_t, char,TCHAR 的区别)
- VS 字符编码类型转换 (wchar_t, char,TCHAR 的区别)
- vc中字符格式的转换TCHAR char string
- TCHAR和char转换
- TCHAR和char转换
- 各种类型字符之间的转换(单字节char*和宽字节wchar_t*,TCHAR和string的转换)
- 关于vs2005 TCHAR和char之间的转换
- Cstring 与 char*的转换,TCHAR 与 char 转换
- CString、TCHAR*、char*之间的转换函数
- 字符串的相互转换(TCHAR,char,CString)
- CString string char TCHAR 之间的转换
- [转载]字节码问题--wchar和char的区别以及wchar和char之间的相互转换字符编码转换等方法及函数介绍
- 字节码问题--wchar和char的区别以及wchar和char之间的相互转换字符编码转换等方法及函数介绍
- 字节码问题--wchar和char的区别以及wchar和char之间的相互转换字符编码转换等方法及函数介绍
- char和TCHAR之间转换
- eclipse导入jdk_src
- openCV中IplImage的使用(转载)
- 第五讲:Obj-C 内存管理3 - 自定义MyArray
- 拥抱变化——持续集成(CI)实践心得
- webwork和ibatis分页
- 绝对正确绝对全的TCHAR和char的转换以及字符编码转换
- (转)引爆2013年互联网格局的十大趋势
- JavaScript小笔记(三)
- Spring MVC 的文件上传
- SPRING.NET 1.3.2 学习11--设置空值和Null值
- PL/SQL Developer 与tnsnames.ora
- 向量的点乘和叉乘
- Android网址链接加下划线
- Linux的帧缓冲设备