c++ - 有没有办法在c++中检测中文字符? (使用 boost )

标签 c++ c++11 boost boost-locale

在一个数据处理项目中,我需要检测中文中的拆分词(中文中的单词不包含空格)。 有没有办法使用 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/

相关文章:

c++ - 使用 merge 合并 C++ 中的两个列表

C++/Boost:将成员函数作为参数传递给 boost::bind

c++ - std::bind 涉及到临时类拷贝时的模板推导

c++ - 在 gcc 4.8 中获取 operator<< 的地址失败

c++ - 如何最好地在我的 C++ 程序中使用相同的 Boost 日志?

c++ - Boost basic_deadline_timer 在几次迭代后停止触发

c++ - Visual C++ - 将 double 和整数写入二进制文件

c++ - 无法检测哪一行导致语法错误

c++ - 赋值运算符的定义有缺陷吗?

c++ - 如何使用boost从内存映射文件访问内存块?