【问题标题】:Unicode normalization through ICU4C通过 ICU4C 进行 Unicode 规范化
【发布时间】:2012-05-14 03:22:12
【问题描述】:

我想使用 ICU C 接口规范化字符串。

查看 unorm2_normalize,我有一些问题。

  1. UNormalizer2 实例 -- 完成后如何处理它?

  2. 如果缓冲区不够大,无法分解或重组怎么办?检查错误代码是否为U_BUFFER_OVERFLOW_ERROR的正常方法是什么? U_STRING_NOT_TERMINATED_WARNING 是否适用?结果字符串是否以空值结尾?如果返回错误,是否要重新分配内存并重试?重新开始似乎是在浪费时间。

【问题讨论】:

  • 这个问题和你这里的other one有区别吗?至少第二部分似乎已经在那里得到了回答,但请告诉我我是否错了。

标签: c unicode icu normalize


【解决方案1】:
  1. unorm2_close()。请注意,您不应释放通过 unorm2_getInstance() 获取的实例
  2. 一般来说,大多数 ICU API 可以传递一个 NULL 缓冲区和 0 长度作为输入,这将导致 U_BUFFER_OVERLOW_ERROR 和一个填充了所需长度的变量。如果您收到 U_STRING_NOT_TERMINATED_WARNING,则意味着:数据已填充但未终止。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-04
    • 1970-01-01
    • 2011-12-08
    • 2016-05-17
    • 2011-10-25
    相关资源
    最近更新 更多