gpt4 book ai didi

c++ - 在 UTF-8 内部工作然后仅在 Windows 需要时才转换为 UTF-16 是否有任何危险?

转载 作者:可可西里 更新时间:2023-11-01 14:06:47 24 4
gpt4 key购买 nike

Visual Studio 试图坚持使用 tchars,当使用 UNICODE 选项编译时,它基本上最终会使用 Windows 和其他 API 的广泛版本。

然后在应用程序内部使用 UTF-8 是否有任何危险(这使得 C++ STL 的使用更容易并且还可以实现更可读的跨平台代码)然后仅在需要使用任何时转换为 UTF-16操作系统 API?

我特别询问有关为多个操作系统开发的问题 - Windows 不使用 UTF-8,而其他操作系统(如 Mac)则使用。

最佳答案

正如其他人所说,内部使用 UTF-8 没有危险,然后在需要调用 Windows 函数时转换。

但是请注意,如果您要显示大量文本,那么每次转换的成本可能会高得令人望而却步。 (请记住,您不仅需要进行转换,还可能需要分配和释放缓冲区来保存临时的、转换后的字符串。)

我还应该指出,STL 内置了宽字符支持,因此确实没有理由这样做。 (std::wstring 等)

此外,只使用 UTF-8 对英语很好,但如果您计划支持东欧、阿拉伯或亚洲字符集,您对文本的存储要求可能会比 UTF-16 大(由于到需要存储三个或四个代码点的更多字符)。同样,如果您要处理大量文本,这可能只会是一个问题,但这是需要考虑的事情 - 如果您要随时通过网络连接传输此文本,则加倍考虑。

关于c++ - 在 UTF-8 内部工作然后仅在 Windows 需要时才转换为 UTF-16 是否有任何危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9623898/

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