有关Unicode与多字节字符集的介绍这里不再赘述,摘抄一段话(忘记出处了),说明一下为什么我们需要Unicode。
我们可以在一台机器上阅读多个国家不同语言的文档了,前提是本机必须安装该文档使用的字符集。
操作系统在发布的时候,通常会往机器里预装标准的字符集还有平台专用的字符集,这样只要你的文档是使用标准字符集编写的,通用性就比较高了。
虽然通过使用不同字符集,我们可以在一台机器上查阅不同语言的文档,但是我们仍然无法解决一个问题:在一份文档中显示所有字符。为了解决这个问题,我们需要一个全人类达成共识的巨大的字符集,这就是Unicode字符集。
Unicode和多字节主要是针对字符串说的。对于Unicode,所有字符都是2个字节来表示,而多字节,英文字符1个字节,汉字2个字节。
《Windows核心编程》中对为什么使用Unicode做了一些论述,摘抄如下:
- Unicode使程序的本地化变得更容易。
- 使用Unicode,只需发布一个二进制(.exe或DLL)文件,即可支持所有语言。
- Unicode提升了应用程序的效率,因为代码执行速度更快,占用内存更少。Windows内部的一切工作都是使用Unicode字符和字符串来进行的。所以,假如你非要传入ANSI字符或字符串,Windows就会被迫分配内存,并将ANSI字符或字符串转换为等价的Unicode形式。
- 使用Unicode,你的应用程序能轻松调用所有不反对使用(nondeprecated)的Windows函数,因为一些Windows函数提供了只能处理Unicode字符