0

正如微软所说:

多字节字符集,特别是双字节字符集 (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编码吗?

4

0 回答 0