在C中将Unicode代码点转换为UTF-8字节序列的最简单方法是什么?我想到的唯一方法就是使用iconv
从UTF-32LE代码页映射到UTF-8,但这似乎有点过头了。
答案 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/找到了这个小函数,虽然没有测试它。