Форум сайта python.su
ну… судя по статистике (у нас работает, у вас - нет) - то да.Py 2.6.5 Win Xp IDLE окно Python Shell ситуация аналогичная… Работает не верно…
>>> u'тест'
u'\xf2\xe5\xf1\xf2'
>>> unicode('тест', 'cp1251')
u'\u0442\u0435\u0441\u0442'
Офлайн
Daevaorn задал правильный вопрос. Я как-то попарился с тем, что в ipython оно работает именно так, как у ТС. Причин не знаю и знать не хочу – пока они это не поправят, я ipython пользовать не буду.
Офлайн
NikДа не, вопрос не в том как получить, а наверное что выдаёт u'str'! Потому что не только в моей программе этого модификатора достаточно, но я ещё и библиотеки с ним подгружаю.
вместо модификатора u используйте функцию unicode() и все будет OK
NikЯ вот не проверял поэтому и спрашиваю, как в программе u'str' сработает, это будет юникод? или шестнадцатеричное представление, или utf-8, как в encoding указано.
В обычных программах можно использовать модификатор u.
Офлайн
Я вот не проверял поэтому и спрашиваю, как в программе u'str' сработает, это будет юникод?Да в обычной программе будет юникод. Можете смело подключать модули. Ошибки наблюдал только в окне Python Shell. В других окнах, например, в интерактивной облочке и редакторе PythonWin все выводится нормально.
или шестнадцатеричное представлениеШестнадцатеричное представление отображается только при выводе без print. Чтобы были буквы при выводе используйте print.
utf-8, как в encoding указано.Юникод-строки к utf-8 никакого отношения не имеют…
Офлайн
NikНаписал две программы, первая:
Да в обычной программе будет юникод.
#!/usr/bin/python
# encoding: koi8-r
a = 'тест'.decode("koi8-r")
b = u'тест'
print a == b
#!/usr/bin/python
# encoding: utf-8
a = 'тест'.decode("koi8-r")
b = u'тест'
print a == b
File “./test.py”, line 4Значит дало не только в Python Shell
b = u'тест'
SyntaxError: (unicode error) ‘utf8’ codec can't decode byte 0xd4 in position 0: invalid continuation byte
Офлайн
если указываешь кодировку файла
# encoding: utf-8
Офлайн
dimabestБлин, я тупо в nano эти примеры набросал. ВСЁ всем СПАСИБО, проблема решена.
то сохранять файл нужно также в этой кодировке
Офлайн