Форум сайта python.su
Приветствую форумчан!
Дайте, пожалуйста, совет. Задача следующая:
Есть две строки.
RS ='р-н'
US = то же самое значение, что и RS но получено из ячейки таблицы БД.
RS, US1. Почему значения не равны?
('\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?
Александр КоробкинЯ думаю, что у вас первое значение не в utf-8, а в каком нибудь 1251, поэтому unicode(RS,'utf-8') и ругается.
3. Как строку на кирилице превратить в Unicode? (Python 2.5.1; IDLE 1.2.1)
Офлайн
nerijus, большое СПАСИБО, разобрался :)
Офлайн