Emscripten build with USE_ICU = 1,并且在调用ubrk_open()后总是失败U_MIS



我们想为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;
}

这个问题有什么解决方案吗?

显然libicu需要加载一个数据文件:http://userguide.icu-project.org/icudata。遗憾的是,到目前为止,还没有任何例子或测试来说明你应该如何做到这一点。似乎有几个选择,但不清楚哪一个是可能的/推荐的。我打开bug: https://github.com/emscripten-core/emscripten/issues/14754

相关内容

  • 没有找到相关文章

最新更新