编译器警告(等级 1)C4566

由通用字符名称“char”表示的字符不能在当前代码页 (page) 中表示出来

你当前的 ANSI 代码页中并不能表示每一个 Unicode 字符。

窄字符串(单字节字符)会转换为多字节字符,而宽字符串(双字节字符)则不会。

下面的示例生成 C4566:

// C4566.cpp
// compile with: /W1
int main() {
   char c1 = '\u03a0';   // C4566
   char c2 = '\u0642';   // C4566

   wchar_t c3 = L'\u03a0';   // OK
   wchar_t c4 = L'\u0642';   // OK
}