Форум сайта python.su
0
в qt designer сделал comboBox.
далее
a = Form.comboBox.currentText()
print (a)
ошибка возникает на принте “UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-7: ordinal not in range(128)
”
как избавиться от ошибки?
P.S. в начале файла прописаны кодировки
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
Офлайн
0
help me!
Офлайн
568
1. Версия питона?
2. Какая ОС?
3. Зачем принт в консоль у гуёвого приложения?
Офлайн
0
FishHookPython 2.6.6
1. Версия питона?2. Какая ОС?3. Зачем принт в консоль у гуёвого приложения?
Офлайн
568
>>> Python 2.6.6
Вот и попробуй родной принт, тот который без скобок.
Офлайн
0
не помогло, таже самая ошибка
Офлайн
0
очень нужна ваша помощь, сегодня 4 часа искал ответы, так и не нашел ничего. 
Офлайн
253
консоль дело темное - начните с
open("a.txt","w").write(a)
a=Form.comboBox.currentText().decode("???") a.encode("utf-8")
Офлайн
3
from __future__ import unicode_literals - зря наверно добавил - лишняя путаница
Определи тип твоей строки ‘str’ или ‘unicode’:
print type(a)
обычно если тип - unicode то
print a
работает без проблем.
Да а консоль то у тебя вообще выводит русские буквы ? и в какой кодировке ? (на linux траблы с этим бывают, давно правда не работал с linux, print u'привет' работает ? читаемо?)
далее если тип - ‘str’ то определяй кодировку этой str, хотя бы как выше написали (через файл)
потом
a=unicode(a,'кодировка твоей str')
print a
Отредактировано Luke (Янв. 28, 2013 23:18:13)
Офлайн
0
закоментил строку from __future__ import unicode_literals
print type(a) выдает <class ‘PyQt4.QtCore.QString’>
str(a) не меняет тип на str
консоль выдает русские буквы —> a = “Привет” <type ‘str’>
P.S. объясните поподробнее как через файл определить кодировку
P.P.S проблема с кодировкой всё еще не решена.
Офлайн