这两种字符串存储格式有什么区别吗?
最佳答案
std::wstring
是wchar_t
的容器。 wchar_t
的大小未指定 — Windows 编译器倾向于使用 16 位类型,Unix 编译器倾向于使用 32 位类型。
UTF-16是一种在 16 位整数序列中编码 Unicode 代码点序列的方法。
使用 Visual Studio,如果您使用不包含 BMP 之外的字符的宽字 rune 字(例如 L"Hello World"
) ,你最终会得到 UTF-16,但大多数情况下这两个概念是不相关的。如果您使用 BMP 之外的字符,std::wstring
将不会翻译 surrogate pairs为您转换为 Unicode 代码点,即使 wchar_t
是 16 位。
关于c++ - "UTF-16"和 "std::wstring"有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4247236/