相关疑难解决方法(0)

在 C++17/C++20 中从 wstring 到 u16string 并返回(符合标准)的转换

我的主要平台是 Windows,这就是我在内部使用 UTF-16(主要是 BMP 字符串)的原因。我想对这些字符串使用控制台输出。

不幸的是没有std::u16coutstd::u8cout,所以我需要使用std::wcout。因此,我必须将 u16strings 转换为 wstrings - 最好(也是最简单)的方法是什么?

在 Windows 上,我知道 wstring 指向 UTF16 数据,因此我可以创建一个简单的 std::u16string_view 使用相同的数据(无转换)。但是在 Linux 上 wstring 通常是 UTF32 ......有没有办法在没有宏和假设 sizeof(wchar_t) == 2 => utf16 的情况下做到这一点?

c++ utf-16 wstring utf-32 c++17

7
推荐指数
1
解决办法
273
查看次数

如何在带有std库的Linux上将utf-16转换为utf-32?

在MSVC 上将 utf-16转换为utf-32非常简单 - 使用C11的codecvt_utf16语言环境方面.但是在GCC(gcc(Debian 4.7.2-5)4.7.2)中,这个新功能似乎还没有实现.有没有办法在没有iconv的情况下在Linux上执行这种转换(最好使用std库的转换工具)?

c++ gcc utf-16

2
推荐指数
1
解决办法
3721
查看次数

标签 统计

c++ ×2

utf-16 ×2

c++17 ×1

gcc ×1

utf-32 ×1

wstring ×1