gpt4 book ai didi

c++ - 对 C++ 的 std::wstring、UTF-16、UTF-8 以及在 Windows GUI 中显示字符串感到困惑

转载 作者:IT老高 更新时间:2023-10-28 22:12:25 27 4
gpt4 key购买 nike

我正在开发一个仅适用于 Windows 的英语 C++ 程序,我们被告知“始终使用 std::wstring”,但似乎团队中没有人真正对此有太多了解。

我已经阅读了标题为 "std::wstring VS std::string 的问题.这很有帮助,但我仍然不太明白如何将所有这些信息应用于我的问题。

我正在处理的程序在 Windows GUI 中显示数据。该数据以 XML 形式保存。我们经常使用 XSLT 将 XML 转换为 HTML 或 XSL:FO 以用于报告目的。

根据我所读到的内容,我的感觉是 HTML 应该被编码为 UTF-8。我对 GUI 开发知之甚少,但我读到的一点点表明 GUI 的东西都是基于 UTF-16 编码的字符串。

我试图了解这给我留下了怎样的印象。假设我们决定我们所有的持久化数据都应该是 UTF-8 编码的 XML。这是否意味着为了在 UI 组件中显示持久数据,我真的应该执行某种明确的 UTF-8 到 UTF-16 转码过程?

我怀疑我的解释可能需要澄清,所以如果您有任何问题,我会尽力提供。

最佳答案

从 NT4 开始的 Windows 是基于 Unicode 编码的字符串,是的。早期版本基于 UCS-2,它是 UTF-16 的前身,因此不支持 UTF-16 支持的所有字符。更高版本基于 UTF-16。不过,并非所有操作系统都基于 UTF-16/UCS-2。例如,*nix 系统是基于 UTF-8 的。

UTF-8 是持久存储数据的绝佳选择。它是所有Unicode环境中普遍支持的编码,在数据大小和无损数据兼容性之间取得了很好的平衡。

是的,您必须解析 XML,从中提取必要的信息,然后将其解码并转换为 UI 可以使用的内容。

关于c++ - 对 C++ 的 std::wstring、UTF-16、UTF-8 以及在 Windows GUI 中显示字符串感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2527720/

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