C语言编码与字符转换
c语言支持的字符编码
#ifndef _UNICODE //如果定义了UNICODEtypedef char TCHAR //定义TCHAR为char
#define _T(x) x //使用宏_T方便定义字符
#else //否则typedef wchar_t TCHAR //定义TCHAR为wchar_t
#define _T(x) L##x
#endif
使用时需要包含<tchar.h>头文件,使用_UNICODE宏开关来控制字符类型
Win32程序与字符编码
字符转换
函数介绍
WideCharToMultiByte
MultiByteToWideChar
使用方法
代码示例
//宽字节字符转换为多字节字符
BOOL CStringToChar(const CString &str, CHAR *pBuf, int nBufSize)
{//注意:以下n和len的值大小不同,n是按字符计算的,len是按字节计算的ASSERT(pBuf != NULL);int n = str.GetLength();int len = WideCharToMultiByte(CP_ACP,0,str,n,NULL,0,NULL,NULL);if (nBufSize - 1 < len){TRACE(_T("CString转换成Char失败,原因:使用的buffer大小不够!"));return FALSE;}//宽字节编码转换成多字节编码WideCharToMultiByte(CP_ACP, 0, str, n, pBuf, len, NULL, NULL);pBuf[len] = '\0'; //多字节字符以'\0'结束return TRUE;
}
//多字节字符转换为宽字节字符
BOOL CharToCString(CHAR *pBuf, CString &str)
{ASSERT(pBuf != NULL);int clen = strlen(pBuf);int len = MultiByteToWideChar(CP_ACP, 0, pBuf, clen, NULL, 0);TCHAR *pTbuf = new TCHAR[len + 1];if (pBuf == NULL){TRACE0("CCommonTool::CharToCString函数中动态申请内存失败!");return FALSE;}//实现多字节编码转换成宽字节编码MultiByteToWideChar(CP_ACP, 0, pBuf, clen, pTbuf, len);pTbuf[len] = '\0';//str.Append(pTbuf);str = pTbuf;//释放动态对内存delete pTbuf;return TRUE;
}
C语言编码与字符转换相关推荐
- C语言实现大小写字符转换
** C语言实现大小写字符转换 ** 从键盘输入一个字符串,将其中的大写字母转换为小写字母,小写转换为大写,并输出. 代码解析如下 #include<stdio.h> int main() ...
- Oracle中编码与字符转换
一.ASCII码与字符相互转换 ASCII(x) gets the ASCII value of the character x,CHR() and ASCII() have the opposit ...
- c语言中输入字符转换成整数,c语言数字字符串转换成整数 C语言中如何将数字变成字符串啊?...
C语言:把数字字符串转换成整型数字不懂时,别乱说:懂得时,别多说:心乱时,慢慢说:没话时,就别说. 运行环境:TC2. 把数字字符串转换成整型数字.比如说小编输入一个数字字符当你年轻时,你以为什么都有 ...
- mbstowcs 和 wcstombs函数:C语言提供的宽字符和多字节字符转换函数
C语言中的多字节字符与宽字符 字符型char只占八位,存储ascii码的,而宽字符型是为了存储多国语言的代码unicode,包括中文,法语德语什么的,8位256种不够用了 C语言原本是在英文环境中设计 ...
- C语言学习(十二)C语言中的字符(宽字符与窄字符)、从字符谈谈C语言的编码、转义字符
C语言学习(十二)C语言中的字符(宽字符与窄字符).从字符谈谈C语言的编码.转义字符 目录 C语言学习(十二)C语言中的字符(宽字符与窄字符).从字符谈谈C语言的编码.转义字符 英文字符 字符的表示 ...
- (转载)Python常见字符编码间的转换
Python常见字符编码间的转换 主要内容: 1.Unicode 和 UTF-8的爱恨纠葛 2.字符在硬盘上的存储 3.编码的转换 4.验证编码是否转换正确 5 ...
- python转换字符编码_Python常见字符编码间的转换
学习Python,字符编码间的转换是绕不过去的一只拦路虎,不把编码彻底搞明白,总有一天它会猝不及防坑你一把. Python2.x和Python3.x在字符编码的设置上也有很大区别(Python3未来将 ...
- Python常见字符编码间的转换教程
1. 前言 Python2.x和Python3.x在字符编码的设置上也有很大区别(Python3未来将是主流,所以Python3为主),今天我们就来一起学习下. 2. Unicode 和 UTF-8的 ...
- c语言中二进制用什么字母表示方法,看C语言编码转换--------负数的二进制表示方法...
今天在看C语言编码转换时,既然对负数的二进制表示有些遗忘,查了下网上的资料,他们说的是个P!误人子弟!和大家讨论了下,贴出来已备在此遗忘: 假设有一个 int 类型的数,值为5,那么,我们知道它在计算 ...
最新文章
- 分布式锁用 Redis 还是 Zookeeper?
- Spring Boot第四篇:SpringBoot 整合JPA
- 最值得你收藏的30个Python常用小技巧
- js 判断数据类型的几种方法
- linux sort 命令详解
- Golang中常用的并发模型
- 联想王传东回应“宁愿放弃5G也不选华为”言论:纯属谣言
- hdu5909-Tree Cutting【FWT】
- 主存和cache每一块相等_CPU中的Cache实现原理
- 【Clickhouse】Clickhouse 多路径存储策略
- .NET项目工程生成一份项目帮助文档chm--Sandcastle工具
- w5500telnet协议详解_STM32F103VCT6+W5500 telnet功能实现
- 百度快照劫持代码的更新
- 天线越大越好吗_路由器的天线是不是越多越好?告知你真实答案,很多人都买错了...
- 程序员走进偶像剧变身男主,网友:我服!
- 2021年广州市学历入户全流程(持续更新)
- Android Navigation与BottomNavigationView实现底部导航栏
- 志愿者服务团队组织由哪些组织组成
- 加密算法(DES\RSA\SHA\ELGAMAL)
- Android无法播放本地视频