• 字符的发展史

1、最初的字符集ASCII码,128个字符。

2、扩展ASCII码,共有256个字符。

3、双字节字符集(DBCS:double-byte character set)。DBCS从256编码开始,最初的128个代码是ASCII,较高的128个代码中的某些总是跟随着第二个字节。这两个字节一起(称作首字节和跟随字节)定义一个字符,通常是一个复杂的象形文字。双字符集问题并不是说字符由两个字节代表。问题在于一些字符(特别是ASCII字符)由1个字节表示,而另一些字符由两个字节表示。

4、Unicode编码中每个字符占用16个字节,它是一套全球化的编码方案,包括世界上所有的象形符号。然而Unicode编码的问题在于每个字符占用两个字节的空间在某些情况下非常浪费。

因此,有些时候我们希望维护统一的原始程序,它能根据某项标识进行ASCII码编译,也能进行Unicode码编译。在windows编程中,提供了TCHAR.H头文件,它为我们提供了这项功能。

  • 宽字符

ANSI C支持8位的character集,也支持16位的宽字符集。宽字符集并不是unicode,unicode是一种宽字符集。

在C语言中,有如下的几种定义字符的方式,它们需要的存储空间如下所示:

char c = 'A';     //c需要一个字节的存储单元。

wchar_t c = 'A';    //c需要两个字节的存储单元

wchar_t * p = L"Hello!";  //p需要四个字节的存储单元,L告诉编译器字符串按宽字符集保存,占14个字节存储,其中包含6个宽字符,和1个2位的0字符

针对宽字符的库函数示例:

char * pc = "Hello!";

iLength = strlen(pc);    //可知iLength等于6

wchar_t * pw = L"Hello!";

iLength = wcslen(pw);   //iLength等于6

  • 宽字符与Windows

若想明确定义8位字符变量和字符串,使用CHAR, PCHAR;

若想明确定义16位字符变量和字符串,使用WCHAR, PWCHAR,并使用L标识字符串;

对于使用8位还是16位字符,取决于UNICODE标识符的定义,此时字符变量和字符串的定义使用TCHAR, PTCHAR,以及TEXT宏。

转载于:https://www.cnblogs.com/qi09/archive/2012/03/01/2362006.html

【Windows程序设计】Unicode简介相关推荐

  1. wi ndows ap i,windows程序设计第二章Unicode简介.doc

    windows程序设计第二章Unicode简介.doc Unico?de简介 在第一章中,我已经预告?,C语言中在?Micro?soft Windo?ws程序设?计中扮演着?重要角色的?任何部分都?会 ...

  2. Windows程序设计“圣经”

    Windows程序设计"圣经" 十年依旧畅销不衰的神品 传奇大师带你走入Windows编程圣殿 "Windows程序设计最举足轻重的书当然就是Charles Petzol ...

  3. 《windows程序设计》第二章学习心得

    Unicode简介 Unicode是ASCII字符编码的一个扩展.Unicode用的是16位字符编码,而不是像ASCII那样的7位编码. ------------------------------- ...

  4. Unicode简介和使用

    一.Unicode简介 在第一章中,我已经预告,C语言中在Microsoft Windows程序设计中扮演着重要角色的任何部分都会讲述到,您也许在传统文字模式程序设计中还尚未遇到过这些问题.宽字符集和 ...

  5. 侯捷:搞Windows程序设计我们需要啥

    侯捷:搞Windows程序设计我们需要啥 如果你是一位资深的Windows程序员,相信你对Jeffrey Richter一定不会陌生,是不是有些崇拜和景仰?如果你是一位刚涉足这个领域的Windows程 ...

  6. windows程序设计.第一个windos程序

    Windows程序设计(第5版) windows程序需要调用API. 第一个Windows程序 1 /*HelloMsg.c -- Displays "Hello World!" ...

  7. windows 程序设计 第一章

    MD,在公司实在蛋疼,每天捣鼓那些废码子,看到哥们有本windows程序设计,闲来没事总结总结,提高提高,也免得回家闲着蛋都碎了. 第一章简单一些,多是概念,也不用太深入看,当然要是全记住,跟同行吹牛 ...

  8. C/C++ 实现一个简单的文本编辑器(windows程序设计)

    一.实现目的 为了更好的学习QT中的窗口.句柄等概念,先对Windows编程进行了大体了解,通过一个简单文本编辑器的实现,来加深对这些基本概念的理解. 二. 基本功能 支持拷贝粘贴 支持文件保存(保存 ...

  9. Windows程序设计_Chap02_Unicode_学习笔记

    Windows程序设计_Chap02_Unicode_学习笔记 ――By: Neicole(2013.05.24) 01. 开篇 <Windows程序设计>的第2章,主要内容为Unicod ...

  10. Windows 程序设计 笔记

    Windows 程序设计 笔记 知识点 双字节字符集和Unicode字符集有何区别?采用双字节字符集有何问题 双字节字符集(DBCS)编码是0-255,DBCS含有1字节代码与2字节代码,而Unico ...

最新文章

  1. CentOS 7.6 MySQL 8.0 RPM包方式安装及新特性介绍
  2. android 动态控制截屏,应用助手for Android新版本:可动态截屏存图
  3. php发送验证码短信,php发送短信验证码
  4. OpenCV-Python bindings是如何生成的(2)
  5. php 输出数组函数调用函数,php – 无法在数组中调用函数
  6. SSH如何通过公钥连接云服务器
  7. 源头防堵信息泄露 监管拟全面推行支付标记化
  8. c#对PL/SQL查询结果列复制的结果生成指定格式
  9. 教新手小白如何通过五分钟学会用Python爬取女神照片!
  10. 人工神经网络(六)线性回归与分类, 解决与区别
  11. GPS卫星同步时钟系统(北斗授时服务器)的技术研究
  12. VSCode使用TSLlint校验TS代码
  13. 美国交通安全管理局出台更加严格机场安全检查新规
  14. 从前端到全栈-基础能力-js-异步编程
  15. 计算机网络技术在实践中应用,计算机网络技术及在实践中的具体应用
  16. C语言词法分析程序的设计与实现
  17. 大数据的接触,带你初步认识什么是大数据,云计算以及物联网
  18. 自动快捷使用数据采集器采集某网站数据---后裔采集器
  19. 淘宝告自媒体人冯东阳一事有结果了
  20. MT4-EA自动化交易研究笔记(2022-06-24)

热门文章

  1. Linux下Git和GitHub使用方法总结(Ubuntu16.04)
  2. unity 半透明混合问题_Unity Shader 透明度混合的双面渲染(十八)
  3. 好消息acesse_真实的acesse爱搜索 黑心传销骗子
  4. python的常用数据类型_python 常用数据类型
  5. BZOJ-2038-小Z的袜子hose-莫队
  6. 全国计算机二级考试c语言指针,全国计算机二级考试C语言 指针精讲课件.ppt
  7. iis url重写 域名跳转子目录_逐浪CMS小哥整理IIS设置URL重写,实现页面的跳转的重定向方法...
  8. java foreach标签,jstl c:foreach标签
  9. maven package自己主动部署包
  10. Phyton自定义包导入。