Обработка специальных символов в MySQL: объяснение парадокса
В MySQL выполнение запросов, включающих специальные символы, такие как 'Å', 'Ä', и «Ö» часто вызывают вопросы относительно согласованности результатов. Например, запросы с «Harligt» и «Härligt» дают одинаковые результаты, что приводит пользователей в недоумение.
Это явление связано с настройками сортировки MySQL по умолчанию, а именно «utf8_general_ci» и «utf8_unicode_ci». Эти параметры сортировки нормализуют определенные символы Юникода, включая скандинавские буквы, приравнивая их к их английским эквивалентам (например, «Ä = A»). Такая нормализация упрощает операции сравнения и поиска, но может быть неудобной в определенных сценариях.
Чтобы решить эту проблему, рассмотрите следующие варианты:
select * from topics where name='Harligt' COLLATE utf8_bin;
Стоит отметить, что операции LIKE без учета регистра в MySQL не могут выполняться без нормализации специальных символов. Однако соответствующие обсуждения можно найти здесь:
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3