"Вот пример отображения строк в кодировке latin1_de и utf8
_latin1_de 'abc'
_utf8 'def' "
Правильно и в этом случае 'abc'='def'. (Понятно что к какой кодировке относится)
Т.е. для тебя оно вроде и не равно, но для машины равно, поскольку с другой стороны 'abc' представляет собой массив из трех элементов, которые равны допустим 1,2,3. Так же и 'def'=1,2,3.
'abc' и 'def' - это то, что видишь ты, а комп в обоих этих случаях увидит 1,2,3
Хотя... Ввод же происходит в соответствии с установленной кодировкой... Хм, я бы на твоем месте попробовал для теста ввести запрос англ. символами и проверить правильно ли оно все работает, возможно, дело, действительно, в кодировке.