Вопрос

Моя программа хранит индекс файла в файле, упакованном cPickle. Есть неанглийские имена файлов. Когда я просто делаю это

print f [0]

где f [0] равно " \ xc2 \ xe8 \ xf1 \ xee \ xea \ xee \ xf1 \ xed \ xfb \ xe9 \ xe3 \ xee \ xe4 " (" & # 1042; & # 1089; & # 1086; & # 1086; & # 1089; & # 1085; & # 1099; & # 1099; & # 1081; & # 1075; & # 1086; & # 1086; ; & # 1076; " в обычном виде), она печатает строку надлежащим образом & # 8212; на русском языке.

Когда программа вручную добавляет строку u '& # 1042; & # 1089; & # 1082; & # 1086; & # 1089; & # 1089; & # 1099; & # 1099; & # 1099; & # 1099; & # 1099; & # 1099; 1081; & # 1075; & # 1086; & # 1076;» в QTreeView все хорошо.

Но когда программа помещает эту строку (" \ xe3 \ xee \ xe4 " и т. д.) прямо из непечатаемого файла в QTreeView, она становится такой:

альтернативный текст http://img170.imageshack.us/img170/9226/encoding .png

Есть ли способ решить это?

Это было полезно?

Решение

Запустили ли вы decode в непечличенной строке, используя правильную кодировку («cp1251», по ее мнению)? Если нет, вам нужно сделать это, чтобы убедиться, что вы передаете строку Unicode в графический интерфейс.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top