7

在 C 中将 Unicode 代码点转换为 UTF-8 字节序列的最简单方法是什么?想到的唯一方法是使用iconv从 UTF-32LE 代码页映射到 UTF-8,但这似乎有点矫枉过正。

4

3 回答 3

8

Unicode 转换不是一项简单的任务。对我来说,使用 iconv 似乎并不过分。也许有一个 iconv 的库版本可以用来避免进行 system() 调用,如果这是你想要避免的。

于 2008-10-27T19:37:19.077 回答
5

我可以建议ICU吗?这是处理 i18n 问题的合理“行业标准”方式。

我自己没有使用过 C 版本,但我怀疑ucnv_fromUnicode可能是您所追求的功能。

于 2008-10-27T19:53:16.500 回答
3

UTF8 通过将编码代码点的长度编码为编码字节的最高位来工作。见http://en.wikipedia.org/wiki/UTF-8#Description

我在这里http://www.deanlee.cn/programming/convert-unicode-to-utf8/在 C 中找到了这个小函数,但没有测试它。

于 2008-10-27T19:47:06.560 回答