将unicode代码点转换为UTF-8的最简单方法

时间:2008-10-27 19:34:12

标签: c unicode utf-8

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

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:3)

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

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