博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
宽字符
阅读量:7043 次
发布时间:2019-06-28

本文共 1356 字,大约阅读时间需要 4 分钟。

在ANSI/ISO 9899--1990也就是美国国家为程序设计语言C指定的标准(也称为ANSI C)中是这样定义的: 
  用多个字节来代表的字符称之为宽字符,而Unicode只是宽字符编码的一种实现,宽字符并不一定是Unicode。 
  在Windows 1.0(1985年11月发布)中,微软发布windows自有的字符集称为ANSI字符集,因为它是基于ANSI和ISO标准的一个草案,而此草案最终称为ANSI/ISO 8859-1--1987,这也简称为"拉丁语-1"。 
  在MS-DOS 3.3中把代码页的概念介绍给了IBM-PC的用户。这一概念也转接到Windows操作系统中。代码页定义了字符的响应字符码。原本的IBM字符集被称为第437页代码页,第850页是MS-DOS Latin 1.但是代码页的数量超乎清理地的剧增。 
  这里面存在的一个基本问题是世界上的书面语言文字根本无法用256个8位代码来表示。以前的那些涉及代码页和DBCS编码已经被证明是不足和笨拙的。那儿Unicode编码也应运而生。 
  UNICODE字符称为宽字符(特别是在C编程环境里),每一个Unicode字符时16位宽而不是8位,C语言用unsigned short表示,可以存放世界上所有书面语言的所有字符和象形文字,还包括一批数学符号和装饰标志的集合。Unicode最棒的一个地方是它只有一个字符集,这就避免了二义性。 
  当今时代,为了应用程序的国际化,应该提倡使用UNICODE来编写程序! 
  VC++6.0之前没有关键字 ,用unsigned short表示WCHAR; 
  VC++7.0之后有了关键字wchar_t,用来表示WCHAR,及宽字符; 
  Unicode 是支持所有字符集(包括无法以单个字节表示的字符集)的规范。为国际市场编程时应考虑使用 Unicode 或多字节字符集 (MBCS),或使程序能够通过更改开关来生成支持两种字符集之一的程序。 
  宽字符是双字节多语言字符代码。在当今的全球计算业内使用的大多数字符(包括技术符号和特殊的发布字符),都可以根据 Unicode 规范表示为宽字符形式。无法以 1 个宽字符表示的字符可以通过 Unicode 的代理项功能以 Unicode 对表示。由于每个宽字符总是以固定的 16 位大小表示,因此使用宽字符可以简化使用国际字符集进行的编程。 
  宽字符字符串表示为一个 wchar_t[] 数组并由 wchar_t* 指针指向它。可以通过用字母 L 作为字符的前缀将任何 ASCII 字符表示为宽字符形式。例如,L'\0' 是终止宽(16 位)NULL 字符。同样,可以通过用字母 L 作为 ASCII 字符串的前缀 (L"Hello") 将任何 ASCII 字符串表示为宽字符字符串形式。 
  通常,宽字符在内存中占用的空间比多字节字符多,但处理速度更快,因为很多系统的内核包括Windows NT内核都是从底层向上使用Unicode编码的。另外,在多字节编码中一次只能表示一个区域设置,Unicode编码可以毫无障碍的在世界上任何书面语言的字符中转换。

转载于:https://www.cnblogs.com/zzili/archive/2012/12/06/6663371.html

你可能感兴趣的文章
英伟达AI:修图软件千千万,效果最牛的还是我这款
查看>>
Java常用数据结构之List
查看>>
如何优雅使用Docker?请收下这15个快捷有效的小技巧
查看>>
MaxCompute重装上阵 第五弹 - SELECT TRANSFORM
查看>>
Web开发模式【Mode I 和Mode II的介绍、应用案例】
查看>>
一次生产的JVM优化
查看>>
RecyclerView的使用总结以及常见问题解决方案
查看>>
本地方法怎么映射Java层的数据类型
查看>>
自定义view之实现日历界面(一)
查看>>
如何实现 font-size 的响应式
查看>>
【从零开始学习Oracle数据库】(3)函数与子查询和连接查询
查看>>
给 Android 开发者的一点福利:免费模拟面试
查看>>
LeetCode Animation 题目图解汇总(持续更新中...)
查看>>
来个简单的事件委托 冒个泡
查看>>
设计模式系列·Facade模式之MVC的烦恼
查看>>
hadoop入门操作
查看>>
Node模块--child_process
查看>>
ATOM如何删除window边框,并且自定义样式
查看>>
[转]MD5(2)-破解MD5之我见
查看>>
mianxiangduixiang
查看>>