4kpt
К чему Вы вообще приплели эту строку?
Это была единственная строка в исходном сообщении, которую можно было сразу скопировать и вставить.
Причём здесь вообще url-декодирование? Оно и вернёт байт-строку, в python2 оно не возвращает unicode, насколько я помню, и поэтому, лучше, конечно, декодировать её сразу после получения в unicode, чтобы потом не было мучительно больно.
Но проблема именно в том, что оно “как есть” считалось с флагом типа unicode, не будучи при этом unicode. Именно эту проблему мы и решали, удаляли флаг unicode. А слово “контакты” я получил даже не с помощью unquote, а с помощью .replace('%',r'\x'). Это не потому, что это правильная запись, а потому что процесс деэскейпирования тут никого не интересует, он очевиден. Автора интересовала проблема приведения типов к конституционному порядку.