Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 28, 2013 13:09:49

SHPROT
Зарегистрирован: 2012-11-16
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировками

в 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

Офлайн

#2 Янв. 28, 2013 13:36:05

SHPROT
Зарегистрирован: 2012-11-16
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировками

help me!

Офлайн

#3 Янв. 28, 2013 13:42:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Проблема с кодировками

1. Версия питона?
2. Какая ОС?
3. Зачем принт в консоль у гуёвого приложения?



Офлайн

#4 Янв. 28, 2013 13:49:26

SHPROT
Зарегистрирован: 2012-11-16
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировками

FishHook
1. Версия питона?2. Какая ОС?3. Зачем принт в консоль у гуёвого приложения?
Python 2.6.6
OS CentOS 6.3
принт я делаю для себя, просто что бы проверить какие данные я реально передаю. (потом все принты я удаляю)

Офлайн

#5 Янв. 28, 2013 14:03:49

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Проблема с кодировками

>>> Python 2.6.6
Вот и попробуй родной принт, тот который без скобок.



Офлайн

#6 Янв. 28, 2013 14:11:10

SHPROT
Зарегистрирован: 2012-11-16
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировками

не помогло, таже самая ошибка

Офлайн

#7 Янв. 28, 2013 14:15:38

SHPROT
Зарегистрирован: 2012-11-16
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировками

очень нужна ваша помощь, сегодня 4 часа искал ответы, так и не нашел ничего.

Офлайн

#8 Янв. 28, 2013 19:07:20

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Проблема с кодировками

консоль дело темное - начните с

open("a.txt","w").write(a)
потом посмотрите что туда пишется, точнее в какой оно кодировке.
и по результату чтото типа этого:
a=Form.comboBox.currentText().decode("???")
a.encode("utf-8")

Я не знаю что возвращает Form.comboBox.currentText() поскольку qt вообще не использую.



Офлайн

#9 Янв. 28, 2013 23:16:17

Luke
От:
Зарегистрирован: 2010-11-29
Сообщения: 30
Репутация: +  3  -
Профиль   Отправить e-mail  

Проблема с кодировками

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)

Офлайн

#10 Янв. 29, 2013 06:12:43

SHPROT
Зарегистрирован: 2012-11-16
Сообщения: 39
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с кодировками

закоментил строку from __future__ import unicode_literals
print type(a) выдает <class ‘PyQt4.QtCore.QString’>
str(a) не меняет тип на str
консоль выдает русские буквы —> a = “Привет” <type ‘str’>

P.S. объясните поподробнее как через файл определить кодировку
P.P.S проблема с кодировкой всё еще не решена.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version