微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Visual Studio“字符集配置”和编码方案的关系?

如何解决Visual Studio“字符集配置”和编码方案的关系?

正如微软所说:

多字节字符集,尤其是双字节字符集 (DBCS)。多字节字符集提供了一种表示多种亚洲语言中大量字符的方法

DBCS 代码页用于日语和中文等语言。在这样的代码页中,一些字符有两个字节的编码

因此,基于上述,我得出了矛盾的结果:(4 个所有可能的案例中有 2 个,我在 4 个案例中的 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了吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。