首页 > 解决方案 > 如何搜索 utf8 字符?

问题描述

所以我用的是C++11,输入的是一个UTF-8编码的文本文件,程序做的是逐行读取文本文件,并搜索给定的字符是否存在于该行中,由于 UTF-8 与 ASCII 兼容,这意味着 ASCII 和 UTF-8 中的新行相同,我没有使用wstring,我只是在使用string,我所做的是获取 UTF-8 编码字节,并创建std::string一个例如,我需要值(U+503C)在每一行中搜索,从这里我们可以看到这个字符的 UTF-8 编码字节是0xE5 0x80 0xBC,所以我有这样的东西,这看起来正确并且可以吗?

ifstream input(utf8file);
string line;
const string t("\xe5\x80\xbc"); // utf8 bytes for 值
while (input) {
    getline(input, line);
    if (line.find(t) != string::npos) {
        do_found();
    } else {
        not_found();
    }
}

标签: c++stringc++11utf-8cjk

解决方案


推荐阅读