Уведомления

Группа в Telegram: @pythonsu

#1 Июль 4, 2011 11:37:07

Александр Коробкин
От:
Зарегистрирован: 2011-07-04
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сравнить String и Unicode

Приветствую форумчан!

Дайте, пожалуйста, совет. Задача следующая:
Есть две строки.
RS ='р-н'
US = то же самое значение, что и RS но получено из ячейки таблицы БД.

RS, US
('\xf0-\xed', u'\u0440-\u043d')

print RS, US
р-н р-н

RS==US
False


unicode(RS,'utf-8')

UnicodeDecodeError: ‘utf8’ codec can't decode bytes in position 0-2: unexpected end of data

RS.encode('utf-8')

UnicodeDecodeError: ‘ascii’ codec can't decode byte 0xf0 in position 0: ordinal not in range(128)
1. Почему значения не равны?
2. Как можно сравнить значения RS и US возвращаемые оператором print?
3. Как строку на кирилице превратить в Unicode? (Python 2.5.1; IDLE 1.2.1)



Офлайн

#2 Июль 4, 2011 12:31:47

nerijus
От:
Зарегистрирован: 2010-06-03
Сообщения: 93
Репутация: +  1  -
Профиль   Отправить e-mail  

Как сравнить String и Unicode

Александр Коробкин
1. Почему значения не равны?
Не совпадают кодировки.

Александр Коробкин
2. Как можно сравнить значения RS и US возвращаемые оператором print?
Перекодировать на такую же самую кодировку.

Александр Коробкин
3. Как строку на кирилице превратить в Unicode? (Python 2.5.1; IDLE 1.2.1)
Я думаю, что у вас первое значение не в utf-8, а в каком нибудь 1251, поэтому unicode(RS,'utf-8') и ругается.



Офлайн

#3 Июль 4, 2011 14:03:21

Александр Коробкин
От:
Зарегистрирован: 2011-07-04
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Как сравнить String и Unicode

nerijus, большое СПАСИБО, разобрался :)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version