Size of wchar_t* for surrogate pair (Unicode character out of BMP) on Windows
问题 I have encountered an interesting issue on Windows 8. I tested I can represent Unicode characters which are out of the BMP with wchar_t* strings. The following test code produced unexpected results for me: const wchar_t* s1 = L"a"; const wchar_t* s2 = L"\U0002008A"; // The "Han" character int i1 = sizeof(wchar_t); // i1 == 2, the size of wchar_t on Windows. int i2 = sizeof(s1); // i2 == 4, because of the terminating '\0' (I guess). int i3 = sizeof(s2); // i3 == 4, why? The U+2008A is the Han