Вы должны попробовать изменить настройку параметров сортировки в БД MySQL.
При обсуждении этой темы часто возникают три вопроса:
utf8_general_ci
utf8_unicode_ci
utf8_bin
← Вы, вероятно, хотите это.
Я обнаружил, что # 3 будет соответствовать акцентам в поиске. Этот ответ дает некоторую предысторию различий, но не учитывает тот факт, что utf8_bin
также чувствителен к акцентам. Возможно, вы захотите попробовать все три, чтобы проверить сами, работает ли он с языком / сценарием, с которым вы работаете.
Чтобы быть уверенным в том, что все будет соответствовать правильно, вам также придется взглянуть на нормализацию Unicode, которая на самом деле представляет собой совершенно другой шарик воска. Возможно, что ваш пользователь мог ввести запрос с ударением, отличным от того, в котором хранятся ваши данные, и поэтому он может не совпадать. У меня была такая проблема с Sqlite, но я не уверен, относится ли она к MySQL или нет.
FWIW, вот CREATE TABLE
, который я сейчас использую, где мне нужно было сопоставить акценты, это настройка COLLATION:
CREATE TABLE `glosses` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`morphemes` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`labels` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
`phrase_id` int(11) DEFAULT NULL,
`nth_word` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
В конце вы можете увидеть прикрепленный COLLATE=utf8_bin
.