【问题标题】:Emscripten build with USE_ICU = 1 and Always failed with U_MISSING_RESOURCE_ERROR after calling ubrk_open()Emscripten 使用 USE_ICU = 1 构建并且在调用 ubrk_open() 后总是以 U_MISSING_RESOURCE_ERROR 失败
【发布时间】:2021-10-02 04:50:00
【问题描述】:

我们希望为我们的 wasm 项目实现基于 ICU 的文本中断迭代器。但是,当我们调用 ubrk_open() 来创建实例时,它总是失败并返回 U_MISSING_RESOURCE_ERROR。

bool TextBreakIteratorImpl::Init() {
  UErrorCode status = U_ZERO_ERROR;
  switch (break_type_) {
    case TextBreakIterator::TextBreakType::BREAK_NEWLINE: {
      iter_ = ubrk_open(UBRK_LINE, nullptr, nullptr, 0, &status);
      break;
    }
    case TextBreakIterator::TextBreakType::BREAK_WORD: {
      iter_ = ubrk_open(UBRK_WORD, nullptr, nullptr, 0, &status);
      break;
    }
  }

  if (U_FAILURE(status) || iter_ == nullptr) {
    return false;
  }

  return true;
}

有解决这个问题的办法吗?

【问题讨论】:

    标签: webassembly emscripten icu


    【解决方案1】:

    显然 libicu 需要加载一个数据文件:http://userguide.icu-project.org/icudata。遗憾的是,到目前为止,还没有关于您应该如何在 emscripten 中执行此操作的示例/测试。似乎有几种选择,但不清楚此处可能/推荐哪一种。我打开了bug:https://github.com/emscripten-core/emscripten/issues/14754

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-24
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2021-09-22
      • 2021-10-11
      相关资源
      最近更新 更多