Поскольку вы не можете хранить «сырое» значение 0xC3
в строке (и если вы это сделали, у вас не должно быть - необработанные двоичные «неразобранные» данные должны быть байтовым массивом): правильный способ преобразования из необработанного байт массив действительно .decode('cp1251')
:
>>> print (b'\xc3'.decode('cp1251'))
Г
Однако, если вы уже получили его в строке, то проще всего сначала преобразовать строку в объект bytes
, используя кодировку 1-на-1 Latin-1:
str = 'Ãamma'
print (bytes(str.encode('latin1')).decode('cp1251'))
>>> Гamma