同一个Unicode(标准化)table有不同的编码方式。例如,对于UTF-8编码,A
corresponds to0x0041
,但是对于UTF-16编码,相同的A
represented as0xfeff0041
。
从这篇brilliant article中,我了解到在Windows平台上使用C++进行Unicode编程时,需要知道Unicode由2个字节表示。但它并未说明编码方式。(它甚至说x86 CPU是小端序,所以我知道这两个字节如何存储在内存中。)但我还应该了解Unicode的编码方式,以便完全了解符号在内存中的存储方式。是否有适用于C++ / Windows程序员的固定Unicode编码?
A
不是以0xfeff0041
表示的。它在UTF-8中是0x41
,在UTF-16中是0x0041
。 - Remy Lebeau0xFEFF
是用作UTF-16 BOM。 - Remy Lebeau