- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
如果我有一些字符串要在 UTF-8 中搜索,另一个要搜索,同样在 UTF-8 中,对代码点进行直接比较搜索以查明匹配字符是否有任何注意事项?
根据 UTF-8 的工作方式,是否有可能出现误报?
我已经阅读了很多关于 UTF-8 有多棒的文档,但我无法形成一个证明来回答这个问题。
如果我向前搜索,那么我可以跳过代码点的长度;但它正在倒着走,这让我很担心。
不是向后走直到我到达代码点的开头,然后从该地址进行内存比较,而是简单地沿着每个字节向后走直到我得到与搜索字符串的完全匹配是否安全?
最佳答案
没有。这里没有警告;此操作在 UTF-8 中是完全安全的。
回想一下,UTF-8 使用两种一般形式表示字符:
ASCII 字符(U+0000 到 U+007F),全部使用 0x00-0x7F
范围内的单个字节逐字表示。
所有其他字符,由一个序列表示,包括:
0xC2-0xF4
范围内,它对部分字符数据以及后续序列的长度进行编码。0x80-0xBF
范围内的一个或多个连续字节,对一个字符的剩余部分进行编码。由于前导字节和连续字节之间没有重叠,因此不小心在多字节字符的中间开始搜索是可以的。您不会找到您的匹配项,因为您正在搜索的字符串不会以连续字节开头,但您也不会找到任何误报。
关于c++ - 在字符串中搜索 UTF-8 代码点时有什么注意事项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34868699/
我最近遇到了难以追踪段错误的问题。奇怪的是,它让我可以很好地访问数组,但由于某种原因,它不允许我在不导致错误的情况下释放它。我测试了所有内容以确保不是其他任何问题,因此我可以 100% 肯定地说它只发
我想让 2 个查询出现在一个具有 2 个字段的结果表中。错误答案和正确答案。 错误答案查询: select count(ma_id) as wrong_answers from exercicio n
我不确定我是否可以在这里展示任何可重现的示例,但是让我讲述我在使用 Shiny 应用程序时遇到的问题。 我有一个 Shiny应用程序,基本上是数据驱动的。我所有需要的数据都保存在 RData 中放置在
在 iOS6 中有 AutoLayout,这是一个基于约束的布局系统。我猜它有点类似于 Android 的灵活 XML 布局。 我正在启动一个 iOS6 项目,希望您使用 AutoLayout。这个应
我正在使用 figure 和 figcaption 将标题过渡到图像上,并且过渡工作正常,但 figcaption 背景位于实际图像之外几个像素(顶部)。 我查看了我的代码并更改了边距、填充和位置设置
我在我的项目中添加了一个数据库,然后我想添加一个 Controller 。 当“添加 Controller ”窗口弹出时,系统会要求我选择数据上下文类。 令人惊讶的是,我发现有2个上下文类:一个叫做:
我在我的应用程序中使用 Angular 和 NodeJS。现在,我将 pdf 文件存储在 gcp 云存储桶中,并通过使用 Nodejs 中的 getSignedUrl 方法获取 pdf 文件的 url
我是一名优秀的程序员,十分优秀!