正如微软所说:
多字节字符集,特别是双字节字符集 (DBCS)。多字节字符集提供了一种表示许多亚洲语言中大量字符的方法。
DBCS 代码页用于日语和中文等语言。在这样的代码页中,某些字符具有两字节编码
因此,基于上述情况,我得到了相互矛盾的结果:(所有可能的情况中有 2 个,并且在 4 个中的 3 个案例中我有 3 个问题)
所以案例1(合同):
- 我想当我选择
Use Multi-Byte Character Set
时,以下会自动选择 DBCS 编码:
string chineseString = "我是路人";
但编译器却说:
警告 C4566:由通用字符名称“\u6211”表示的字符无法在当前代码页中表示 (1252)
这与配置本身相矛盾,因为 1252 只是西方语言编码。不应该在这里使用 MBCS/DBCS 吗?
案例2(可以理解,不矛盾):
- 我选择“使用 Unicode 字符集”
现在我假设我必须指定一个编码,所以我会这样做:
string chineseString = u8"我是路人"
这对我有用并且有意义。
案例3(合同纠纷):
- 我选择“使用多字节字符集”:
wstring chineseStringW = L"我是路人"
那么现在是使用编码 DBCS 吗?如果是这样,为什么string
不拿起DBCS?或者只是因为\u6211
适合wchar_t
?
案例4:
- 我选择“使用 Unicode 字符集”:
wstring chineseStringW = L"我是路人"
那么现在是UTF16-LE编码吗?