Windows via C/C++ 学习(4)字符编码

UTF – Unicode Transformation Format

Windows 中的 Unicode字符 使用 UTF-16 编码,UTF-16 编码的每一个字符由2个字节(16位)组成。

UTF-8 编码:使用1到4字节表示一个字符。值小于 0x0080 的字符使用一字节,美国字符集一般属于这类;值位于 0x0080和0x07FF之间的字符使用两个字节,欧洲和中东国家的字符属于这一类;大于 0x0800 的字符使用三个字节表示,东亚国家语言位于这个范围内;最后,代理对(surrogate pairs)由4个字节表示。UTF-8是一各比较常用的编码格式,但如果处理大于 0x0800 的字符时效率比 UTF-16 低。

UTF-32 编码:每一个字符由4个字节表示。这种编码在编写一个遍历字符的算法时或处理可变字节的字符时非常有用。它多用于将字符串保存到一个文件或网络中进行传输。

为什么必须使用 Unicode 字符或字符串

1. Unicode 易于本地化你的应用程序

2. Unicode 允许你发布支持所有语言的单个库(.exe 或 DLL)

3. Unicode 提升应用程序的效能,因为处理这样的代码更快和使用更少的存储空间。Windows 内部将所有的字符和字符串作为 Unicode 处理,当你传递一个 ANSI 字符或字符串时,Windows 必须分配一块内存空间将 ANSI 字符或字符串转换为等效的 Unicode

4. 使用 Unicode 可以确保你的应用程序能很容易地调用所有不反对使用(nondeprecated)的 Windows 函数,因为一些 Windows 函数只提供了操作 Unicode 字符或字符串的函数

5. 使用 Unicode 可以确保你的代码很容易与 COM 集成,COM 要求使用 Unicode 字符或字符串

6. 使用 Unicode 可以确保你的代码很容易与 .NET 集成,.NET 要求使用 Unicode 字符或字符串

7. 使用 Unicode 可以确保你的代码很容易地操作你自己的资源,资源字符串总是描述为 Unicode

你可能感兴趣的:(windows)