gpt4 book ai didi

c++ - UTF8 与宽字符?

转载 作者:行者123 更新时间:2023-11-30 02:55:56 25 4
gpt4 key购买 nike

我似乎在思考某事时遇到了一些麻烦。我正在尝试创建一个 C++ 函数来将 UTF8 转换为 Wide。我开始谷歌搜索并找到了 Boost 和 ICU(两者看起来都太大了)。然后我找到了 utf-cpp 头库,看起来不错。我通过此处的一些线程发现了这一点。

然后我阅读了那个线程并找到了https://stackoverflow.com/a/6155524

但这两个函数如何将 UTF32 字符串转换为宽字符?它似乎是UTF32到UTF8。我在 utf-cpp header 文档中找不到任何关于宽字符的提及...

无论如何,是否有任何类型的库可以将 UTF8/16/32 转换为 Wide 和反向?我在看http://src.chromium.org/svn/trunk/src/base/utf_string_conversions.cc它似乎使用了 ICU,但它也有大约 18 个头文件。

有什么帮助吗?也许这只是我今天脑袋坏了。

编辑:重读后有两个问题...我真正想知道的是有一个不错的小型库(如 utf-cpp header )来处理宽字符和 unicode。

最佳答案

如果“wide char”指的是 wchar_t,那么您必须考虑到它在某些平台上是 16 位的(使用 UCS-2 或 UTF-16),但在其他平台上是 32 位(使用 UTF-32)。因此,询问如何与“wide char”相互转换,您首先必须定义“wide char”的实际含义。处理 UTF-16/32 时需要使用适当的 16 位/32 位数据类型。

几乎所有 Unicode 库,包括 utf8-cpp 和 ICU,都具有使用适当的数据类型在 UTF8<->UTF16 和 UTF8<->UTF32 之间进行转换的函数,而不依赖于 wchar_t

关于c++ - UTF8 与宽字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050218/

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