SHPROT
Янв. 28, 2013 13:09:49
в 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
SHPROT
Янв. 28, 2013 13:36:05
help me!
FishHook
Янв. 28, 2013 13:42:49
1. Версия питона?
2. Какая ОС?
3. Зачем принт в консоль у гуёвого приложения?
SHPROT
Янв. 28, 2013 13:49:26
FishHook
1. Версия питона?2. Какая ОС?3. Зачем принт в консоль у гуёвого приложения?
Python 2.6.6
OS CentOS 6.3
принт я делаю для себя, просто что бы проверить какие данные я реально передаю. (потом все принты я удаляю)
FishHook
Янв. 28, 2013 14:03:49
>>> Python 2.6.6
Вот и попробуй родной принт, тот который без скобок.
SHPROT
Янв. 28, 2013 14:11:10
не помогло, таже самая ошибка
SHPROT
Янв. 28, 2013 14:15:38
очень нужна ваша помощь, сегодня 4 часа искал ответы, так и не нашел ничего.
doza_and
Янв. 28, 2013 19:07:20
консоль дело темное - начните с
open("a.txt","w").write(a)
потом посмотрите что туда пишется, точнее в какой оно кодировке.
и по результату чтото типа этого:
a=Form.comboBox.currentText().decode("???")
a.encode("utf-8")
Я не знаю что возвращает Form.comboBox.currentText() поскольку qt вообще не использую.
Luke
Янв. 28, 2013 23:16:17
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
SHPROT
Янв. 29, 2013 06:12:43
закоментил строку from __future__ import unicode_literals
print type(a) выдает <class ‘PyQt4.QtCore.QString’>
str(a) не меняет тип на str
консоль выдает русские буквы —> a = “Привет” <type ‘str’>
P.S. объясните поподробнее как через файл определить кодировку
P.P.S проблема с кодировкой всё еще не решена.