【问题标题】:Light C Unicode Library [closed]Light C Unicode库[关闭]
【发布时间】:2010-09-23 17:38:58
【问题描述】:

我正在寻找一个小型 C 库来处理 utf8 字符串。

具体来说,基于 unicode 分隔符进行拆分,以便与词干算法一起使用。

相关帖子有建议:

ICU http://www.icu-project.org/(我发现它对于我在嵌入式设备上的用途来说太笨重了)

UTF8-CPP:http://utfcpp.sourceforge.net/(非常好,但 C++ 不是 C)

有没有人找到任何独立于平台的小型代码库来处理 unicode 字符串(不需要进行归化)。

【问题讨论】:

  • utf8-cpp 很棒!顺利移植到ios/android。仅标头库

标签: c unicode utf-8


【解决方案1】:

我成功使用的一个漂亮、轻便的库是utf8proc

【讨论】:

    【解决方案2】:

    UTF-8 是专门设计的,因此许多面向字节的字符串函数可以继续工作或只需要稍作修改。

    例如,

    C 的 strstr 函数,只要它的两个输入都是有效的、以 null 结尾的 UTF-8 字符串,就可以完美地工作。 strcpy 工作正常,只要其输入字符串从字符边界开始(例如 strstr 的返回值)。

    所以您甚至可能不需要单独的库!

    【讨论】:

    • 非常正确,直到现在我只需要存储/复制字符串并且正在这样做。但后来我开始需要拆分/词干索引以确保我正确处理它们。
    • 当它们工作时,搜索功能在面对 UTF-8 字符时可能表现不佳。例如,如果可以确定 UTF-8 字符不立即匹配(如果与 ASCII 字符比较,通常可能),则可以跳过可以是多个字节的整个 UTF-8 字符编码。但是你说得对,C 的一些函数可以很好地处理 UTF-8 字符串,这也是 UTF-8 流行的原因之一。
    • 不崩溃与工作不一样:像字符串大小这样简单的东西不适用于 UTF-8。 UTF-8 并不是专门为库兼容性而设计的。
    【解决方案3】:

    还有MicroUTF-8,但可能需要登录凭据才能查看或下载源代码。

    【讨论】:

      猜你喜欢
      • 2010-10-19
      • 2011-02-10
      • 1970-01-01
      • 2015-01-30
      • 2012-04-07
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多