gpt4 book ai didi

c++ - 将 UTF-16(Windows 上的 wchar_t)转换为 UTF32

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

Windows API 函数(GetLocaleInfoEx 和 LOCALE_SLONGDATE)提供给我的一串字符作为 wchar_t。从 Windows 返回的值将是 UTF-16,因此它可能不是一个 wchar_t,一个“可打印字符”,这样说是否正确?

为了让我的解析器更容易编写,是否有一个函数可以用来将 UTF-16 转换为 UTF-32,我可以保证(我假设)一个数组元素代表一个字符?

最佳答案

where I'll be guaranteed (I assume), one array element represents one character?

Unicode 不是这样工作的。一个代码点(UTF-32 中的数组元素)不一定映射到单个可见字符。由于 Unicode 组合字符等功能,多个代码点可以组合形成一个字符。

如果您想知道一个 Unicode 字符串有多少可见字符,您必须进行真正的 Unicode 分析。

即使有日期(尤其是您要求的长格式日期),您也无法避免这些功能。语言环境可以返回任意 Unicode 字符串,因此您无法仅从代码点的数量知道 Unicode 字符串的长度。

关于c++ - 将 UTF-16(Windows 上的 wchar_t)转换为 UTF32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35614386/

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