gpt4 book ai didi

使用 ICU 和 Nana GUI 库的 C++ - 字符串转换?

转载 作者:行者123 更新时间:2023-11-30 05:25:19 27 4
gpt4 key购买 nike

我刚刚用 C/C++ 中的 ICU 做了一些成功的测试。我需要解析具有不同编码(可能是 UTF-8、UTF-16LE 等)的不同 CSV 文件,对数据进行一些修改,最后将所有内容作为 UTF-8 输出到一个文件中。这就是为什么我选择了 ICU。字符集检测通常工作得很好,字符处理和到 UTF-8 的转换也是如此。

现在我想将执行 CSV 加载、操作等的库部分与 GUI 库 Nana 集成。 Nana 似乎使用了 std::string 和 std::wstring。

由于 ICU 在内部将所有数据存储为 UTF-16,因此在使用 ICU 时我得到的是 UChars 或 UnicodeStrings。但是我怎么能将它们中的任何一个与不与 ICU“集成”的 Nana 一起使用呢?有什么方法可以将 UChar 数组转换为 wstring,或将 UnicodeString 转换为 wstring?

在 ICU 文档中没有找到任何提示,所以......也许其他人已经在处理这个问题了?

最佳答案

大多数 nana 函数期望 std::string以 UTF-8 编码。

您可以使用 ICU functions接受或返回 char *转换为 UTF-8。

一些 nana 函数,例如 widget::caption std::wstring 的重载预计以 UTF-16(在 Windows 中)或 UTF-32(在 Linux 中)编码,可用于将具有 native 字符类型和编码的字符串传递给操作系统。如果您需要转换,娜娜提供 nana::charset 它可以管理(显式或隐式)一些最常需要的从/到 UTF-8/UTF-16/UTF-32 的转换。

如果您尝试通过 static_cast<wchar_t *>(some_UChar*)娜娜,请告诉我们结果。我无法测试。

关于 Unicode 处理的 nana 文档急需更新(我认罪)

关于使用 ICU 和 Nana GUI 库的 C++ - 字符串转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38332690/

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