Если у меня есть строка, которую нужно искать в UTF-8, а другая для поиска, также в UTF-8, есть ли какие-либо оговорки, чтобы выполнить прямой поиск по сравнению с кодовым пунктом, чтобы определить подходящий символ?Любые оговорки при поиске кодовой точки UTF-8 в строке?
С тем, как работает UTF-8, можно ли когда-либо получить ложный позитив?
Я прочитал много документации о том, как велика UTF-8, но у меня возникли проблемы с созданием доказательства для ответа на этот вопрос.
Если я ищу вперёд, то я могу пропустить длину кода; но он идет по веревке, которая меня беспокоит.
Вместо того, чтобы идти назад, пока не нажмете начало кода, а затем сделайте сравнение памяти с этого адреса, безопасно ли просто идти назад по каждому байту, пока я не получу полный матч против строки поиска?
Имейте в виду, что UTF кодируют только коды. Если вы хотите сделать * кодовый поиск *, вы в порядке. Но если вы хотите выполнить * текстовый поиск *, вы должны учитывать нормализацию, поскольку различные кодовые точки имеют разные представления в разных нормализованных формах.Поэтому вам нужно убедиться, что две строки UTF-8 используют одну и ту же нормализованную форму. –