我正在寻找一个可移植且易于使用的C / C ++字符串库,它可以帮助我使用Unicode输入/输出。在最好的情况下,它会将其字符串以UTF-8存储在内存中,并允许我将字符串从ASCII转换为UTF-8 / UTF-16并返回。除此之外我不需要更多(好吧,自由执照不会受到伤害)。我已经看到C ++带有<locale>
标头,但这似乎仅适用于wchar_t
,可能是也可能不是UTF-16编码,而且我不确定这实际上有多好
使用案例例如:在Windows上,unicode API需要UTF-16字符串,我需要转换ASCII或UTF-8字符串以将其传递给API。对于XML解析也是如此,UTF-16可能会附带,但我实际上只想用UTF-8进行内部处理(或者,就此而言,如果我内部切换到UTF-16,我需要转换为UTF-16反正)。
到目前为止,我已经看了ICU,这是非常巨大的。此外,它希望使用它自己的项目文件构建,而我更喜欢一个库,其中有一个CMake项目或易于构建(类似于编译所有这些.c文件,链接和好去)而不是像我的应用程序那样运送ICU那么大的东西。
你知道这样的图书馆吗?毕竟,这似乎是一个非常基本的问题。
答案 0 :(得分:20)
UTF8-CPP似乎正是您想要的。
答案 1 :(得分:2)
我建议您查看GNU iconv库。
答案 2 :(得分:0)
还有另一个可移植的 C 库,用于 UTF-8、UTF-16、UTF-32、wchar - mdz_unicode 库之间的字符串转换。