QTextCodec::setCodecForCStrings(QTextCodec::codecForName("cp1251"));
Ой, спасибо вам большое!!! Я делал
QTextCodec::setCodecForTr(QTextCodec::codecForName("windows-1251"));
но не думал, что нужно еще вызывать setCodecForCStrings... Троли в своем репертуаре.
методам setCodecFor* уже много лет.
а в своём репертуаре пользователи, ленящиеся читать документацию *хотя бы по тем функциям, которые используют в собственном коде*. фраза "но не думал" довольно точно характеризует таких пользователей.
PS: Может кому-то будет полезно, QUrl::toPercentEncoding так и не захотел работать, но как обнаружилось такой же метод есть у QByteArray. Вот он РАБОТАЕТ!
если это так, следует отрапортовать.