在一个数据处理项目中,我需要检测中文中的拆分词(中文中的单词不包含空格)。 有没有办法使用 native C++ 功能或 boost.locale 库来检测中文字符?
最佳答案
一般来说,如果您想在 C++ 中完全支持 Unicode,几乎没有办法 ICU 。 Boost 提供了对其功能的一些访问(通过 Boost.Locale 和 Boost.Regex),但它需要在 ICU 支持下编译 Boost。因此,与其确保目标平台的 Boost 已编译,不如直接使用 ICU API。
如果您正在寻找单词边界,icu::BreakIterator (更具体地说, icu::BreakIterator::createWordInstance )是起点。然后,您可以通过 setText 传递要迭代的文本。并通过 next 移动迭代器等人。 (是的,ICU 这种方式有点不习惯,因为它起源于 java )。
或者,如果您不想使用完整的 C++ API,可以使用 ublock_getCode这会告诉你 UBlockCode有问题的代码点。
关于c++ - 有没有办法在c++中检测中文字符? (使用 boost ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62531882/