我想使用 Visual Studio 2017、C++ 和 WindowsAPI(以前称为 Win32)为自己编写一个语言学习应用程序。操作系统是最新的 Windows 10 内部版本,向后兼容性不是问题。由于我假设英语是用户的母语,而我目前感兴趣的语言是另一种欧洲语言,ASCII 可能就足够了。但我想对它进行未来验证(更多异国情调的语言),我也想尝试使用 UTF-32。我以前使用过 UTF-8 和 UTF-16,虽然我对后者有更多的经验。
感谢std::basic_string
,很容易弄清楚如何获取 UTF-32 字符串:
typedef std::basic_string<char32_t> stringUTF32
由于我为所有 GUI 人员使用 WinAPI,我需要在 UTF-32 和 UTF-16 之间进行一些转换。
现在我的问题是:由于 UTF-32 效率低下而没有被广泛使用,因此网络上几乎没有任何关于它的资料。为了避免不必要的转换,我想将我的词汇表和其他数据保存为 UTF-32(对于所有 UTF-8 倡导者/传播者,替代方案是 UTF-16)。问题是,我找不到如何以 UTF-32 编写和打开文件。
所以我的问题是:如何用 UTF-32 编写/打开文件?我希望不需要第三方库,除非它们是 Windows 的一部分或通常随该操作系统一起提供。