我一直在开发一个需要各种 UTF-8 字符的 C 应用程序,所以我开始使用ICU库来支持 Unicode 字符,但似乎与其他库(主要是 jansson,一个 JSON 库)配合得不好.
尽管jansson声称它完全支持 UTF-8,但它只期望字符作为参数(IIRC,单个字节对于 Unicode 字符来说是不够的),而 ICU 使用一种称为UChar
(16 字节大小的字符,至少在我的系统上)的特殊类型.
将 Unicode 字符转换为常规字符对我来说似乎不是解决方案,因为将较大的数据转换为较小的数据会导致数据丢失。无论如何,我都尝试过铸造;它没有用。
所以我的问题是:我怎样才能让这两个库很好地协同工作?