gpt4 book ai didi

c++ - char 和 wchar_t 之间的转换在 Windows 中如何工作?

转载 作者:行者123 更新时间:2023-11-30 05:34:49 26 4
gpt4 key购买 nike

Windows 中有类似mbstowcs 的函数在 char 和 wchar_t 之间转换。还有 C++ 函数,例如 from_bytes<std::codecvt<wchar_t, char, std::mbstate_t>>使用。

但是,由于 char 和 wchar_t 的大小明显不同,这在幕后是如何工作的呢?我假设系统代码页以某种方式参与?但是,如果 wchar_t 不能与 char 关联(毕竟它可以包含更多的值),会发生什么情况?

另外,如果必须使用 char 的代码(可能是由于库)在具有不同代码页的计算机之间移动,会发生什么情况?假设它只使用完全在 ASCII 范围内的数字 (0-9),那总是安全的吗?

最后,在无法用 256 个字符表示本地语言的计算机上会发生什么情况?在那种情况下,除了用于存储例如 utf8 之外,char 的概念似乎完全不相关。

最佳答案

这完全取决于所使用的cvt 方面,如所述here

在您的情况下,( std::codecvt<wchar_t, char, std::mbstate_t> ) 归结为 mbsrtowcs/wcsrtombs使用全局语言环境。 (就是“C”语言环境,如果你不把它换成系统的话)

关于c++ - char 和 wchar_t 之间的转换在 Windows 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34087138/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com