我正在寻找一个便于使用的、便携式的 C/C++ 字符串库,帮助我处理 Unicode 输入/输出。最好是将字符串存储在 UTF-8 编码的内存中,并允许我将字符串从 ASCII 转换为 UTF-8/UTF-16,反之亦然。除此之外我不需要太多功能(当然,宽松的许可证也很重要)。看到 C++ 自带了
例如,在 Windows 上,Unicode API 需要 UTF-16 字符串,因此我需要将 ASCII 或 UTF-8 字符串转换为 UTF-16 以传递给 API。XML 解析也是同样的情况,虽然其输入可能会是 UTF-16,但我只想在内部使用 UTF-8 来处理(或者如果我切换到 UTF-16 内部表示,那么我无论如何都需要转换)。
到目前为止,我已经看过了ICU,但这太庞大了。此外,它需要使用自己的项目文件来构建,而我更希望有一个可以使用 CMake 项目构建或者容易构建的库(比如编译所有这些 .c 文件,链接就好),而不是将庞大的 ICU 与我的应用程序一起打包。
您是否知道这样的库,而且还在维护中?毕竟,这似乎是一个非常基本的问题。
<locale>
头文件,但这似乎只针对 wchar_t
,而这种编码方式可能是 UTF-16,也可能不是,而且我也不确定它的实际效果如何。例如,在 Windows 上,Unicode API 需要 UTF-16 字符串,因此我需要将 ASCII 或 UTF-8 字符串转换为 UTF-16 以传递给 API。XML 解析也是同样的情况,虽然其输入可能会是 UTF-16,但我只想在内部使用 UTF-8 来处理(或者如果我切换到 UTF-16 内部表示,那么我无论如何都需要转换)。
到目前为止,我已经看过了ICU,但这太庞大了。此外,它需要使用自己的项目文件来构建,而我更希望有一个可以使用 CMake 项目构建或者容易构建的库(比如编译所有这些 .c 文件,链接就好),而不是将庞大的 ICU 与我的应用程序一起打包。
您是否知道这样的库,而且还在维护中?毕竟,这似乎是一个非常基本的问题。