windows字符集

一、多字节和宽字节

在多字节字符集下:一个字符对应1个字节,一个中文字符是2个字符,一个英文字符是1个字符

在宽字节字符集下:一个字符对应多个字节,汉字和英文字符都是一个字符,Unicode下是两个字节,utf-8下是三个字节

windows默认使用的是Unicode字符集

多字节转为宽字节,只需要前面加一个大L

MessageBox(L"aaa");

二、自适应编码

TEXT和TCHAR使用的是自适应编码,会自动转为转换为当前的编码格式

三、统计字符串长度

    //统计字符串长度
    //多字节
    int len = 0;
    char *p = "aaaa";
    len = strlen(p);
    //宽字节
    wchar_t *p2 = L"aaaa";
    len = wcslen(p2);

四、char *和CString之间的转换

    //char * -> CString
    char *p3 = "ccc";
    CString str = CString(p3);
    //CString -> char *
    CStringA tmp = str;
    char *p4 = tmp.GetBuffer();    

原文地址:https://www.cnblogs.com/yanchaoyi/p/12601085.html

时间: 2024-11-10 15:11:33

windows字符集的相关文章

2.windows字符集

1.ASC - 7位代表一个字符,128个 2.ASCII - 8位代表一个字符,256个 3.MBCS DBCS - 单双字节混合编码方式(英文占1个字节,中文占2个字节) 4.UNICODE - 所有的字符都占2个字节 宽字节字符 wchar_t:每个字符占2个字节,实际是unsigned short类型,定义的时候需要增加"L",通知编译器按照双字节编译字符串,采用                       UNICODE编码. 需要使用支持wchar_t函数操作宽字符串,例如

在window cmd中设置字符集后,mysql的测试

之前测试过,在centos下,所有字符集全部设为utf8,可以同时满足命令行和网页的需求. 在windows下,由于默认字符集为gbk,所以在命令行操作mysql时,需要设置set character_set_client = gbk; 今天发现,其实是要设置set character_set_results = gbk;即可,其它均为utf8或gbk都行. 另外尝试改变windows字符集,cmd下chcp 65001切换到utf8,但这好像是临时的,由于这次安装的wamp,用的自带的终端,c

关于Unicode字符集

关于Unicode字符集 (2011-10-20 20:54:03)   最初的unicode编码是固定长度的,16位,也就是2两个字节代表一个字符,这样一共可以表示65536个字符.显然,这样要表示各种语言中所有的字符是远远不够的.Unicode4.0规范考虑到了这种情况,定义了一组附加字符编码,附加字符编码采用2个16位来表示,这样最多可以定义1048576个附加字符,目前unicode4.0只定义了45960个附加字符. Unicode只是一个编码规范,目前实际实现的unicode编码只要

Windows API参考大全新编

书名:新编Windows API参考大全 作者:本书编写组 页数:981页 开数:16开 字数:2392千字 出版日期:2000年4月第二次印刷 出版社:电子工业出版社 书号:ISBN 7-5053-5777-8 定价:98.00元 内容简介 作为Microsoft 32位平台的应用程序编程接口,Win32 API是从事Windows应用程序开发所必备的.本书首先对Win32 API函数做完整的概述:然后收录五大类函数:窗口管理.图形设备接口.系统服务.国际特性以及网络服务:在附录部分,讲解如何

CMarkUp学习

创建一个XML文档 对于创建一个XML文档,需要实例化一个CMarkup对象,并调用AddElem创建根元素..在这个位置,如果你调用 AddElem("ORDER") ,你的文档会简单的装一个空ORDER元素<ORDER/>. 然后调用AddChildElem 在根元素的下面创建元素 (例如:"进入"根元素内部,层次表示).下面的示例代码创建一个XML文档并返回它(的内容)到一个字符串中. CMarkup xml; xml.AddElem("

Unicode简介

Unicode简介 壹佰软件开发小组  整理编译   在第一章中,我已经预告,C语言中在Microsoft Windows程序设计中扮演着重要角色的任何部分都会讲述到,您也许在传统文字模式程序设计中还尚未遇到过这些问题.宽字符集和Unicode差不多就是这样的问题. 简单地说,Unicode扩展自ASCII字符集.在严格的ASCII中,每个字符用7位表示,或者计算机上普遍使用的每字符有8位宽:而Unicode使用全16位字符集.这使得Unicode能够表示世界上所有的书写语言中可能用于计算机通讯

idea使用心得(4)-踩过的坑

1.非法的表达式开始 / 需要';' / 未结束的字符串文字 表现形式: 原因/解决: 这个一定是文件编码问题:依次检查setting中的file Encodings 中的IDE Encoding/Project Encoding/Properties Encoding 以及 Default Encoding,务必全部设置为utf-8.之后检查文件本身的编码格式.最后检查项目文件.idea文件夹下的encodings.xml,把所有的GBK都改为utf-8.可解决这个问题.一般从外部复制文件的时

ASCII简介

1产生 美国标准信息交换代码是由美国国家标准学会(American National Standard Institute , ANSI )制定的,标准的单字节字符编码方案,用于基于文本的数据. 22简介 ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符.标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9.标点符号, 以及在美式英语中使用的特殊控制字符.其中: 0-31及127(共33个)是控制字符或通信专用字

CentOS7-汉字乱码问题-locale设置等

要点: 1.linux默认字符集都是utf8 ~]$date #看日期是否有汉字 ~]$echo $LANG #看日期是否有汉字 2.windows字符集默认本地,gb2312 3. 原文地址:https://www.cnblogs.com/java2sap/p/11355737.html