1

我一直在开发一个需要各种 UTF-8 字符的 C 应用程序,所以我开始使用ICU库来支持 Unicode 字符,但似乎与其他库(主要是 jansson,一个 JSON 库)配合得不好.

尽管jansson声称它完全支持 UTF-8,但它只期望字符作为参数(IIRC,单个字节对于 Unicode 字符来说是不够的),而 ICU 使用一种称为UChar(16 字节大小的字符,至少在我的系统上)的特殊类型.

将 Unicode 字符转换为常规字符对我来说似乎不是解决方案,因为将较大的数据转换为较小的数据会导致数据丢失。无论如何,我都尝试过铸造;它没有用。

所以我的问题是:我怎样才能让这两个库很好地协同工作?

4

1 回答 1

1

让 ICU 使用toUTF8/以 UTF-8 格式生成输出toUTF8String。(toUTF8String 为您提供了std::string获得.c_str()Janssonchar*想要的结果的方法。

于 2013-07-18T10:59:54.860 回答