c++ - 如何搜索 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();
}
}
解决方案
推荐阅读
- macos - MacOS Safari 中的响应式 SVG 行为
- python - If else 语句不支持 *: 'NoneType' 和 'float' 的操作数类型
- sql - 从同一个表中的父行获取所有子代
- angular - 错误 RangeError:使用带有 Angular 11 的 webComponent 超出了最大调用堆栈大小
- c# - 在 C# 中交换这些列表元素的更有效方法是什么?为什么他们的行为不同?
- swift - 无法快速读取 m4p 文件中的标签
- svelte - Web3 - 苗条问题
- google-apps-marketplace - OAuth 2.0 范围只有写权限,没有读权限
- jsf - 找不到带有标识符的组件
- mysql - SQL Insert into with join 和 where