Unicode字符集下CString/tchar*与char *转换 (解决中文乱码等)
来源:互联网 发布:维戈 莫特森 知乎 编辑:程序博客网 时间:2024/05/22 06:53
Unicode环境下宽字符------->窄字符的转换
定义:TCHAR m_szIp[MAX_IP_LEN]; 我们要将TCHANR类型数组(宽字符型)转换为char*pBuffer类型(窄字符型):
方法一:
- int nNum=WideCharToMultiByte(CP_ACP,0,m_szIp,-1,0,0,NULL,NULL);
- char* pBuffer=new char[nNum+1];
- WideCharToMultiByte(CP_ACP,0,m_szIp,-1,pBuffer,nNum,NULL,NULL);
方法二:T2A 、W2A
- USES_CONVERSION;
- char *pBuffer = T2A(m_szIp);
相反,同样情况下,窄字符--------->宽字符转换:
方法一:MultiByteToWideChar
方法二:A2T、A2W
下面是对方法一的两个函数的封装:
- char *WideCharToAnsi(wchar_t *pWideChar)
- {
- if (!pWideChar) return NULL;
- char *pszBuf = NULL;
- int needBytes = WideCharToMultiByte(CP_ACP, 0, pWideChar, -1, NULL, 0, NULL, NULL);
- if (needBytes > 0){
- pszBuf = new char[needBytes+1];
- ZeroMemory(pszBuf, (needBytes+1)*sizeof(char));
- WideCharToMultiByte(CP_ACP, 0, pWideChar, -1, pszBuf, needBytes, NULL, NULL);
- }
- return pszBuf;
- }
- wchar_t *AnsiCharToWide(char *pChar)
- {
- if (!pChar) return NULL;
- wchar_t *pszBuf = NULL;
- int needWChar = MultiByteToWideChar(CP_ACP, 0, pChar, -1, NULL, 0);
- if (needWChar > 0){
- pszBuf = new wchar_t[needWChar+1];
- ZeroMemory(pszBuf, (needWChar+1)*sizeof(wchar_t));
- MultiByteToWideChar(CP_ACP, 0, pChar, -1, pszBuf, needWChar);
- }
- return pszBuf;
- }
阅读全文
0 0
- Unicode字符集下CString/tchar*与char *转换 (解决中文乱码等)
- Unicode字符集下CString/tchar*与char *转换 (解决中文乱码等)
- Unicode字符集下CString与char *转换 (解决中文乱码等)(转)
- Unicode字符集下CString与char *转换 (解决中文乱码等)(转)
- Unicode字符集下CString与char *转换 (解决中文乱码等)(转)
- Unicode字符集下CString与char *转换 (解决中文乱码等)(转)
- Unicode字符集下CString与char *转换 (解决中文乱码等)
- Unicode字符集下CString与char *转换 (解决中文乱码等)
- Unicode字符集下CString与char *转换
- Unicode字符集下CString与char *转换
- Unicode字符集下CString与char *转换
- Unicode字符集下CString与char *转换
- Unicode字符集下CString与char *转换
- Unicode字符集下CString与char *转换
- Unicode字符集下CString与char *转换
- Unicode字符集下CString与char *转换
- Unicode字符集下CString与char *转换
- Unicode字符集下CString与char *转换
- 日常学习之 std::pair
- WARN No appenders could be found for logger的解决方法
- 最大子矩阵和
- java数据格式转换
- PAT基础题 4-11 求自定类型元素序列的中位数
- Unicode字符集下CString/tchar*与char *转换 (解决中文乱码等)
- 51nod 动态数组基础教程 5
- 在ubuntu系统中配置Qt和opencv
- MyBatis学习系列之一
- java集合(一)总图
- async & await 的前世今生
- win10 internet临时文件删不掉的完美解决方法!
- [nyoj 10 ] skiing [ 记忆化搜索]
- Lucene 6.1 Demo