Каким образом база понимает запрос, если кодировка в базе utf-8, а запросы к ней выполняются из кода в windows-1251?
строка
QTextCodec::setCodecForCStrings(codec);
говорит что при конвертации с обычных строк в QString(в котором используется utf-16 насколько мне не
изменяет память) будет использоваться метод перекодирования с "Windows-1251" в utf-16, то есть
ты явно указал что текст у тебя в "Windows-1251" и поэтому перекодировка будет правильной,
query.exec принимает QString, то есть тут присутствует неявная конвертация с 1251 в юникод
это все есть в ассистанте в описании класса QString