C中字节的Unicode代码点流?

Mat*_*ude 6 c unicode icu

我正在用C编写一个HTML解析器,我希望正确遵循解析器实现的W3C指南.其中一个关键点是解析器在Unicode代码点流而不是字节上运行,这是有道理的.

基本上,给定一个已知字符编码的缓冲区(我将给出一个显式的输入编码,或者将使用HTML5预扫描算法做出一个很好的猜测),C中最好的方法是什么 - 理想的是跨平台,但坚持到UNIX很好 - 迭代一个等效的Unicode代码点序列?

分配一些合理大小的缓冲区并使用iconv方法去?我应该看ICU吗?这些宏U16_NEXT看起来非常适合我的任务,但是ICU文档非常冗长,而且很难确切地知道如何将各种东西粘在一起.

tow*_*owi 2

ICU是一个不错的选择。我将它与 C++ 一起使用并且非常喜欢它。我确信您在 C 语言中也会得到类似的经过深思熟虑的 API。

本教程可能不完全相同,但有些相关,它解释了如何执行流式/增量音译(这种情况下的困难在于“光标”有时可能位于代码点内)。