在ANSI/ISO 9899--1990也就是美国国家为
程序设计语言C指定的标准(也称为ANSI C)中是这样定义的:
在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之前没有关键字
wchar_t,用unsigned short表示WCHAR;
VC++7.0之后有了关键字
wchar_t,用来表示WCHAR,及宽字符;
Unicode 是支持所有
字符集(包括无法以单个
字节表示的字符集)的规范。为国际市场编程时应考虑使用 Unicode 或多
字节
字符集 (MBCS),或使程序能够通过更改开关来生成支持两种字符集之一的程序。
宽字符是双
字节多语言字符代码。在当今的全球计算业内使用的大多数字符(包括技术符号和特殊的发布字符),都可以根据 Unicode 规范表示为宽字符形式。无法以 1 个宽字符表示的字符可以通过 Unicode 的代理项功能以 Unicode 对表示。由于每个宽字符总是以固定的 16 位大小表示,因此使用宽字符可以简化使用国际
字符集进行的编程。